遇到小程序获取数据异步的问题,要用到promise,这里记录一下学习笔记
观看的视频:
es6 Promise讲解(bilibili)
ES6超级简单:Promise的resolve/reject/then/catch/all/race,一学就会!
Promise 为了解决多层函数、方法的嵌套调用而存在的。
含义
就是操作一个异步操作结果的方法
其中 Promise的参数executor是一个执行器函数(其实是一个回调函数),它有两个参数(resolve,reject)。它内部通常有一些异步操作,
(1)如果异步操作成功,则可以调用reslove()将实例状态置为fulfilled(完成的)
(2)如果异步操作失败,则可以调用reject()将实例状态置为rejected(失败的)
new Promise(
function(resolve,reject){
if(){ /*success*/
//执行代码。。
resolve();
}else{ /*fail*/
//执行代码。。
reject();
}
}
)
// 或者
new Promise((resolve,reject)=>{
})
捕获成功的值
then方法
new Promise((resolve,reject)=>{
resolve(100) // 返回100
//reject(1000)
}).then(res => console.log('成功',res))
.catch(res => console.log('失败',res))
//输出: 成功100