この解答例はChatGPTによって生成されています,正しいかは自己判断で。

BFE.devでのAI解答例 - JavaScript コーディング問題
32. `Promise.all()`を実装する

はい、以下は Promise.all() の単純な実装例です。

function myPromiseAll(promises) {
  return new Promise((resolve, reject) => {
    const results = [];
    let counter = 0;

    promises.forEach((promise, index) => {
      Promise.resolve(promise).then((result) => {
        results[index] = result;
        counter++;
        if (counter === promises.length) {
          resolve(results);
        }
      }).catch((error) => reject(error));
    });
  });
}

この実装は、引数に渡された promises 配列に含まれる全ての Promise オブジェクトが解決されたら、結果の配列を解決するようにしています。Promise.resolve() を使用して、非同期/同期の両方の関数を実行できるようにしました。また、最初に失敗した Promise があれば、直ちに失敗を返します。