极客时间返利平台,你可以在上边通过山月的链接购买课程,并添加我的微信 (shanyue94) 领取返现。

# 有没有用过 Promise.allSettled() ,它是干什么的

Issue

欢迎在 Gtihub Issue 中回答此问题: Issue 247 (opens new window)

Author

回答者: mrrs878 (opens new window)

接收一个可迭代对象,其中每个成员都是Promise。在所有给定的Promise都已经fulfilledrejected后返回一个Promise,并带有一个对象数组,每个对象表示对应的Promise结果 相较于Promise.all,后者会在任何一个Promiserejected时立即结束 简单实现

const myPromiseSettled = (items) => {
  const onResolved = (value) => ({ status: "fulfilled", value });
  const onRejected = (reason) => ({ status: "rejected", reason });
  return Promise.all(
    items.map((item) => Promise.resolve(item).then(onResolved, onRejected))
  );
};

@mrrs878 代码相当简洁了!

Last Updated: 11/27/2021, 6:11:48 PM