用法
传一个promise
的数组,当所有的promise
都完成(resolved
),回调所有成功的结果, 如果有一个回调执行失败,then
是不会执行的,则在catch回调第一个失败的结果
代码
Promise.all([promise1,promise2,promise3]).then((res)=>{
console.log("res==>",res);
}).catch((error)=>{
console.log("error==>",error);
})
应用场景
- 比如一个接口请求里面需要传参数,而这个参数来自其他2个接口的返回值
- 假设一个支付操作需要用户账户有余额,并且商品有库存,才能进行下一步操作
注意
几个异步操作是强相关的,后续步骤必须依赖这几个步骤全部成功才能进行
好处
promise.all
将多个promise
放在一起处理,能简化回调的处理(不然需要调很多次,不科学),一个then回调就能拿到所有数据,对其进行处理,也能用一个catch
回调捕获所有的异常
如图