Promise.all处理同步请求
Promise.all处理同步请求
由于Promise.all的原理,其中一个promise出错,就直接暂停其他promise的执行。
使用async函数包裹,async函数必定返回resolve状态。
const resolvePadding = async (p)=>{
try{
const result = await p
return {
status:'success',
data:p
}
}catch(error){
return {
status:'fail',
data:error
}
}
}
const promise1 = new Promise((resolve,reject)=>{
resolve(1)
})
const promise2 = new Promise((resolve,reject)=>{
reject(2)
})
const promise3 = new Promise((resolve,reject)=>{
resolve(3)
})
Promise.all([promise1,promise2,promise3].map(promise=>resolvePadding(promise))).then(res=>console.log(res),rej=>console.log(rej))