Promise 高级用法对比

const p = Promise.all([p1, p2, p3])
// p1, p2, p3 为传入 promise 的实例
  1. Promise.all(ES2015):只有当传入的每个 Promise 实例的状态都变成 fulfilled 时,p 才 fulfilled,只要实例中有任意一个的状态是 rejected 的状态就变成了 rejected;

  2. Promise.race(ES2015):当传入的 Promise 实例中有一个的状态最先改变(注意是第一个改变状态的实例),那么 p 的状态就是该实例的状态,然后进行返回;

  3. Promise.allSettled(ES2020):只有等到所有传入的 Promise 实例都返回结果,不管是 fulfilled 还是 rejected,实例才会结束,然后返回对应的每个实例的状态;

  4. Promise.any(ES2021):当其中任何一个 Promise 实例 fulfilled 时,就返回该已完成的实例的 Promise。如果所有的实例都 rejected,那么就返回一个拒绝的 Promise 实例。

const pAny = Promise.all([p1, p2, p3])
Promise.any(pAny).then(
  resolve => {
    // 任何一个Promise完成
  },
  reject => {
    // 所有的 Promise都拒绝了
  }
)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • promise: 1. 定义: 是一套异步操作处理机制, Promise A+ 是规范,jQuery、ES2015...
    HellorWord阅读 568评论 1 3
  • async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async函数对 ...
    Xyaleo阅读 1,113评论 0 4
  • 前言 在异步编程中,Promise 扮演了举足轻重的角色,比传统的解决方案(回调函数和事件)更合理和更强大。可能有...
    浪里行舟阅读 1,861评论 0 10
  • 1.基本用法 2.Promise.prototype.then() then方法返回的是一个新的Promise实例...
    clelo_佛手阅读 196评论 0 0
  • 一、什么是Promise A Promise is an object representing the even...
    Coderclc丶阅读 1,439评论 0 6