1.寫法
// 定義一個promise
let promise = new Promise(function(reslove,reject){
if(true){
reslove(參數(shù))
}else{
reject(參數(shù))
}
})
// 調(diào)用
promise.then(function(reslove傳來的參數(shù)){
}).catch(function(reject傳來的參數(shù)){
})
//catch可以捕獲前面的錯誤
或
promise.then(function(reslove傳來的參數(shù)){
}),function(reject傳來的參數(shù)){
}
// function捕獲前面的錯誤
2.多個promise調(diào)用
let a = new Promise(function(reslove,reject){
reslove()
})
let b = new Promise(function(reslove,reject){
reslove()
})
a
.then(b)
3.多個promise,都完成了才執(zhí)行回調(diào)(all方法)
let p = Promise.all([p1,p2,p3],function(val){
// value值為三個promise返回的參數(shù)數(shù)組
})
如果這個三個promise, 某一個狀態(tài)為reject,那么val為該promise,reject方法帶的參數(shù)
p的狀態(tài)也為reject
4.多個promise,哪個先完成,用哪個(race方法)
let p = Promise.race([p1,p2,p3],function(val){
// value值為先完成的promise返回的參數(shù)
})
p的狀態(tài)也變成先完成的promise的狀態(tài)