Promise中.all()和.race()的区别

Promise.all()和Promise.race()都可以放一个存储Promise对象的数组

Promise.all() 是数组里面所有的Promise对象执行结束之后会返回一个存储所有 promise对象的结果

var promiseA= function () {
 return new Promise((resolve,reject)=>{
  setTimeOut(()=>{
    console.log('我是PromiseA')
     resolve('A')
    },3000)
  })
}
var promiseB= function () {
 return new Promise((resolve,reject)=>{
  setTimeOut(()=>{
    console.log('我是promiseB')
     resolve('B')
    },4000)
  })
}
Promise.all([promiseA(),promiseB()]).then((res)=>{console.log(res)})  // 输出["A", "B"]  


Promise.race([promiseA(),promiseB()]).then((res)=>{console.log(res)})  // 输出["A"],因为A的setTimeout延迟比B早

Promise.race()只会返回一个执行速度最快的Promise对象返回的结果

其他异步函数也会照样执行,只是不会再执行resolve和reject,也不会返回结果了

console.log()还是会照常执行,只是不会执行resolve('B')
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容