高级前端
js
【Q312】如何实现 Promise.race

如何实现 Promise.race

Issue 欢迎在 Gtihub Issue 中回答此问题: Issue 314 (opens in a new tab)

Author 回答者: codelou (opens in a new tab)

Promise.race = function (promises) { return new Promise((resolve, reject) => { promises.forEach((p,index) => { Promise.resolve(p).then( value => {resolve(value)}, reason => { reject(reason) } ) }) }) }

Author 回答者: hwb2017 (opens in a new tab)

Promise.race = (promiseArray) => {
  return new Promise((resolve, reject) => {
    promiseArray.forEach((item) => {
      Promise.resolve(item).then(
        (val) => {
          resolve(val);
        },
        (reason) => {
          reject(reason);
        },
      );
    });
  });
};