前端面试题 - 112.实现一个Promise.allSettled函数

572 阅读1分钟

关键点:Promise.all等带所有任务执行完,每个任务执行后then/catch的结果都转换为对象。

function promiseAllSettled(promises) {
  return Promise.all(
    promises.map((promise) =>
      promise
        .then((value) => ({
          status: "fulfilled",
          value: value,
        }))
        .catch((reason) => ({
          status: "rejected",
          reason: reason,
        }))
    )
  );
}