一、Promise.all()
接收一个参数,它必须是可以迭代的,比如数组
。(它返回一个Promise实例)
它通常用来处理一些并发的异步操作,即它们的结果互不干扰,但是又需要异步执行。它最终只有两种状态:成功或者失败,当里面的所有Promise实例状态发生变化的时候它才会变。
它的状态受参数内各个值的状态影响,即里面状态全部为resolved时,它才会变成resolved,否则变成rejected
。
成功调用后返回一个数组
,数组的值是有序的,即按照传入参数的数组的值操作后返回的结果。
二、Promise.race()
Promise.race()和Promise.all()类似,都接收一个可以迭代的参数(如,数组),但是不同之处是Promise.race()的状态变化不是全部受参数内的状态影响,一旦参数内有一个值的状态发生的改变,那么该Promise的状态就是改变的状态
。就跟race单词的字面意思一样,谁跑的快谁赢。
只返回一个最先加载完的 Promise实例
。
扩展阅读推荐:
https://www.jianshu.com/p/7e60fc1be1b2