美文网首页
Promise.allSettled,ES2020新特性对于Pr

Promise.allSettled,ES2020新特性对于Pr

作者: O人心 | 来源:发表于2021-08-06 15:46 被阅读0次

Promise.all方法

// promise all
let p1 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(11);
 }, 1000);
});
let p2 = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(22);
  }, 2000);
});
// Promise.all([p1, p2]).then(res => {
//     console.log(res);//(2) [11, 22] "r===="
// }).catch(err => {
//     console.log(err);
// })

function myPromiseAll(list) {
  return new Promise((resolve, reject) => {
    let resultsArr = [];
    let num = 0;
    list.forEach((item) => {
      item.then((res) => {
        resultsArr.push(res);
        num++;
        if (num == list.length) {
          resolve(resultsArr);
        }
      });
    });
  });
}
myPromiseAll([p1, p2])
  .then((r) => {
    console.log(r, "r====");//(2) [11, 22] "r===="
  })
  .catch((err) => {
    console.log(err);
  });

使用promise.all如果有一个对象reject了,那么promise.all就会返回错误,promise.all只能返回全部是resolve的结果

image.png

Promise.allSettled方法

  let p3 = new Promise((resolve,reject)=>{
        // resolve(11)
        reject("error======")
   })
   let p4 = new Promise((resolve,reject)=>{
        resolve(222)
  })
  Promise.allSettled([p3,p4]).then(res=>{
       console.log(res);
       //0: {status: "rejected", reason: "error======"}
       //1: {status: "fulfilled", value: 222}
  })

使用promise.allSettled的话,不管是否是reject都会返回,并且返回成功或者失败的status

image.png

相关文章

  • Promise.allSettled,ES2020新特性对于Pr

    Promise.all方法 使用promise.all如果有一个对象reject了,那么promise.all就会...

  • ES2020 新特性

    ES2020已经落地了,其中几个新特性实用性还是不错的,这就意味着,现在对 ES2020 中 Javascript...

  • ES2020新特性?? ?.

    专心搞前端的第9天 今天遇到一题让我一脸懵逼的面试题。 完全看不懂怎么办,怎么那么多奇怪的???网上搜了好久都没找...

  • ES2020新特性

    可选链操作符(Optional Chaining) 作用:让我们在查询具有多个层级对象时,不再需要进行冗余的各种前...

  • es2020新特性

    文章来源:方凳雅集 前言自从ES6发布之后,TC39这个负责开发ECMAScript标准的机构每年都会发布新特性。...

  • ES2020新特性

    可选链 (Optional chaining) 可选链 让我们在查询具有多层级的对象时,不需要再进行冗余的各种前置...

  • es2020新特性

    ES2020 是 ECMAScript 对应 2020 年的版本。这个版本不像 ES6 (ES2015)那样包含大...

  • ES2020新特性

    https://kangax.github.io/compat-table/es6/ 查询各个浏览器对ES的支持:...

  • ES2020新特性

    前言 ES2020 是 ECMAScript 对应 2020 年的版本。这个版本不像 ES6 (ES2015)那样...

  • ES2020新特性

    Promise.allSettled优势: 在并发任务重,任务异常或者正常,都会返回对应的状态(fulfilled...

网友评论

      本文标题:Promise.allSettled,ES2020新特性对于Pr

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