promise.all和promise.race的区别

首先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

发布了107 篇原创文章 · 获赞 64 · 访问量 6641

猜你喜欢

转载自blog.csdn.net/yunchong_zhao/article/details/104010366