Promise.allSettled()
-
接收参数为promise数组,返回promise对象,状态永远为成功
-
始终能够得到每一个promise成功失败的结果
//声明两个promise对象
const p1 = new Promise((resolve, reject) =>{
setTimeout(()=>{
resolve('商品数据-1');
},1000)
})
const p2 = new Promise((resolve, reject) =>{
setTimeout(()=>{
// resolve('商品数据-2');
reject('失败的数据');
},1000)
})
//调用allSettled方法
const result = Promise.allSettled([p1,p2]);
console.log(result)
show
Promise.all()
- 返回的是promise对象,返回状态有一个失败且都失败,
失败的值为数组里面失败的值
//声明两个promise对象
const p3 = new Promise((resolve, reject) =>{
setTimeout(()=>{
resolve('商品数据-1');
},1000)
})
const p4 = new Promise((resolve, reject) =>{
setTimeout(()=>{
// resolve('商品数据-2');
reject('失败的数据');
},1000)
})
//调用all方法
const result1 = Promise.all([p3,p4]);
console.log(result1)//rejected
show
总结:
什么时候用 Promise.allSettled()?
什么时候用 Promise.all()?
-每一个异步任务都想得到结果就使用Promise.allSettled()
-异步任务要求每个都成功才能往下执行就使用Promise.all()