promise

74 阅读1分钟

1,关于promise

ans:在旧的es6中处理异步的方法是通过回调函数,promise是es6解决异步操作的新方法,从语法上来说:promise是一个构造函数,从功能上来说,promise对象用来封装一个异步操作并可以取得其成功失败的结果值

2,常见的异步编程有

ans:fs操作,数据库操作,ajax,定时器操作

3,为什么需要promise

ans:支持链式调用,可以解决回调地狱(回调函数嵌套调用,内部回调函数的执行结果是外部函数的执行条件)等问题

4,promise test

const p = new Promise((resolve,reject)=>{
    settimeout(()=>{
        if(true){
            resolve(n)
        },else{
            reject(n)
        }
    },1000)
});
p.then((res)=>{
    alert(111)
},(err)=>{
    alert(222)
})

resolve 解决 函数类型的数据 当调用resolve()的时候,把promise的状态设置为成功

reject 拒绝 函数类型的数据 当调用reject()的时候,把promise的状态设置为失败

当我们调用promise实例对象的时候,需要传入一个函数类型的参数,设置状态后,调用then方法,判断状态是否成功,如果是成功,则调用成功的回调函数,如果失败,则调用失败的回调函数

resolve和reject调用的时候可以传入参数,

\