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

posted @ 2022-03-03 19:26  BONiii  阅读(793)  评论(0编辑  收藏  举报