美文网首页前端新手
Promise 高级用法对比

Promise 高级用法对比

作者: 刘员外__ | 来源:发表于2020-12-04 11:50 被阅读0次
    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 高级用法对比

        本文链接:https://www.haomeiwen.com/subject/jknbwktx.html