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))
