Promise 是一个对象,对象可以保存状态。
如何使用?
第一步:
new一个Promise (此时Promise 对象就处于已进行中的状态),Promise 需要一个参数,这个参数是一个函数,我们用箭头函数表示,这个箭头函数接受两个参数,resolve和reject函数。
const promise = new Promise((resolve,reject)=>{
});
第二步:
把需要处理的异步函数写在箭头函数中
const promise =new Promise((resolve,reject)=>{
//promise有三种状态,pending异步操作进行中 fulfilled已成功 rejected已失败
//当改变了promise的状态后,就凝固了,不可再逆转
wx.getSystemInfo({
success:(res)=>{
//通过调用resolve可以把进行中的promise修改为已成功
resolve(res)
},
fail:(error)=>{
//通过调用reject可以把进行中的promise修改为已失败
reject(error)
}
})
});
第三步:
通过promise变量来接收异步调用的结果
promise.then((res)=>{
//成功时的回调函数
console.log(res)
}, (error)=>{
//失败时的回调函数
console.log(error)
})
最后,整理一下使代码简洁一些
const promise = new Promise((resolve,reject)=>{
wx.getSystemInfo({
success:res=>resolve(res),
fail:error=>reject(error)
})
});
promise.then(
res=>console.log(res),
error=>console.log(error)
)