Promise.allSettled() 接受多个Promise对象 数组形式传递参数
所有的Promise都敲定状态时就返回成功结果
无论结果是fulfilled还是rejected都会在then获取,不会来到catch里面
const p1 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(11111)
}, 1000);
})
const p2 = new Promise((resolve, reject) => {
setTimeout(() => {
reject(22222) //抛出错误
}, 2000);
})
const p3 = new Promise((resolve, reject) => {
setTimeout(() => {
resolve(33333)
}, 3000);
})
// allSettled
Promise.allSettled([p1, p2, p3]).then(res => {
console.log('res:' , res)
// 打印结果
// res: [
// { status: 'fulfilled', value: 11111 },
// { status: 'rejected', reason: 22222 },
// { status: 'fulfilled', value: 33333 }
// ]
}).catch(err => {
// 无论结果是fulfilled还是rejected都不会来到catch里面
console.log('err:' , err)
})
fulfilled状态结果在value中
rejected状态结果在reason中