当前位置: 代码迷 >> 综合 >> Promise.all/race 的作用及使用场景
  详细解决方案

Promise.all/race 的作用及使用场景

热度:44   发布时间:2023-12-02 18:43:16.0

Promise.all
用于将多个Promise实例,包装成一个新的Promise实例。它接受一个数组作为参数。数组可以是Promise对象,也可以是其它值,只有Promise会等待状态改变。
当所有的子Promise都按顺序执行完,该Promise完成,返回值是全部值的数组;
如果有任何一个失败,该Promise失败,返回值是第一个失败的子Promise的结果。
比如开发中有个组件需要多个请求完成之后再进行渲染,这时候用promise.all就非常nice了
Pomise.race
类似于Promise.all() ,区别在于 它有任意一个返回成功后就算完成,但进程不会立即停止。也就是说哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。
常见使用场景:把异步操作和定时器放到一起,如果定时器先触发,认为超时,告知用户
**注意:**不管是promise对象还是promise.all,只要是遇到失败,promise的状态都会变为rejected,不会执行后面.then(),而是直接走.catch()方法。

  相关解决方案