1.写法
// 定义一个promise
let promise = new Promise(function(reslove,reject){
if(true){
reslove(参数)
}else{
reject(参数)
}
})
// 调用
promise.then(function(reslove传来的参数){
}).catch(function(reject传来的参数){
})
//catch可以捕获前面的错误
或
promise.then(function(reslove传来的参数){
}),function(reject传来的参数){
}
// function捕获前面的错误
2.多个promise调用
let a = new Promise(function(reslove,reject){
reslove()
})
let b = new Promise(function(reslove,reject){
reslove()
})
a
.then(b)
3.多个promise,都完成了才执行回调(all方法)
let p = Promise.all([p1,p2,p3],function(val){
// value值为三个promise返回的参数数组
})
如果这个三个promise, 某一个状态为reject,那么val为该promise,reject方法带的参数
p的状态也为reject
4.多个promise,哪个先完成,用哪个(race方法)
let p = Promise.race([p1,p2,p3],function(val){
// value值为先完成的promise返回的参数
})
p的状态也变成先完成的promise的状态
网友评论