promise.all的使用(包括和promise.race和promise.any和区别)

214 阅读1分钟

1.promise.all

  • Promise.all可以将多个Promise实例包装成一个新的Promise实例

  • 里面的多个异步请求全部成功,才会算成功,走then函数,返回结果是所有的请求的结果组成的一个数组,其中有一个失败,就会走catch函数,然后返回的是第一个错误的请求的结果(如果有多个失败,只返回第一个改变成失败状态的

  • 记住是第一个改变成失败状态的,而不是写在第一位的,因为可能写在最后的是第一个改变状态的

2.promise.race的使用

  •  Promise.race方法返回一个 promise,一旦迭代器中的某个 promise 解决或拒绝,返回的 promise 就会解决或拒绝。

  • 意思就是不管有多少个请求,只要有一个变化了,不管是成功还是失败了,就会触发接下来的操作,成功就走then,失败就走catch,而且只返回一个,后面的再变化也不返回了

3.promise.any 的使用

  •  Promise.any() 接收一个Promise可迭代对象,只要其中的一个 promise 成功,就返回那个已经成功的 promise 。如果可迭代对象中没有一个 promise 成功(即所有的 promises 都失败/拒绝),就返回一个失败的 promise

  • 意思就是只有全是失败了,才走catch,只要有一个成功就走then