Promise.all()的使用

<script>

let p1=new Promise((resolve,reject)=>{

setTimeout(() => {

resolve('3秒后出现的成功');

}, 3000);

})

let p2=new Promise((resolve,reject)=>{

setTimeout(() => {

resolve('1秒后出现的成功');

}, 1000);

})

let p3=new Promise((resolve,reject)=>{

reject('失败3')

}).catch((err)=>{console.log(err);})

let p4=new Promise((resolve,reject)=>{

reject('失败4')

})

// 1.promise.all会合并多个promise实例,形成一个新的的promise实例,promise.all的状态是由其他promise实例的状态来决定的

// 2.如果promise实例都是成功状态,那么promise.all的状态也是成功的,并且会接收promise实例返回值形成的数组

// 3.返回的结果是由书写顺序决定,不是由加载状态决定的

Promise.all([p1,p2]).then((res)=>{

console.log(res);// 虽然p1比p2完成的慢,但是返回的结果却是 ["3秒后出现的成功", "1秒后出现的成功"]

}).catch((err)=>{

console.log(err);

})

 

// 4.如果promise实例有失败状态,那么promise.all的状态也是失败的,并且接收第一个失败状态的promise实例的返回值

// 但是如果promise实例自己有catch进行处理,就不会进入到promise.all中

Promise.all([p1,p2,p3,p4]).then((res)=>{

console.log(res);

}).catch((err)=>{

console.log(err);//失败4

})

 

// 5.使用场景:根据多个请求合并后的结果来进行后续的操作

// 返回结果的顺序是由书写顺序决定的,在一些特定环境下,操作很友好

</script>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值