Promise Function

Promise.all


功能: 同時執行所有 Promise 直到全部成功 或任一失敗

function all(promises) {

  const responseArr = new Array(promises.length);
  const solveArr = new Array(promises.length).fill(false);

  if(promises.length === 0) {
    return Promise.resolve([]);
  }

  return new Promise((resolve, reject) => {
    for(let i=0;i<promises.length;i++) {

      if(promises[i] instanceof Promise) {
        promises[i].then((response) => {
          responseArr[i] = response
          solveArr[i] = true;

          if(!solveArr.includes(false)) {
            resolve(responseArr);
          }
        }).catch((err) => {
          reject(err)
        })
      } else {
        responseArr[i] = promises[i];
        solveArr[i] = true;
      }
      
    }
  })
}

Promise.allSettled

Promise.any

Promise.race

Last updated