当前位置: 代码迷 >> 综合 >> promise.all和promise.race的区别
  详细解决方案

promise.all和promise.race的区别

热度:87   发布时间:2024-01-25 07:11:07.0

首先promise.all和promise.race 里面 都可以放一个 存储promise对象的数组

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

var runA=function(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log('runA方法');
resolve('a')
},3000)
})
}
var runB=function(){
return new Promise((resolve,reject)=>{
setTimeout(()=>{
console.log('runB方法');
resolve('b');
},4000)
})
}
Promise.all([runA(),runB()]).then((res)=>{console.log(res)});   // 输出 ["a", "b"]

promise.race 顾名思义 race就是比赛的意思  只会返回一个执行速度最快的那个promise对象返回的结果 

注意:其他的异步函数照样还是会执行的 只是  不会再 执行 resolve和reject  也不会返回结果了 但函数还是会执行的 如:还是会打印  console.log('runB方法')  只会不会执行 下面的 resolve('b')

  Promise.all([runA(),runB()]).then((res)=>{console.log(res)});   // 输出 a