この解答例は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 があれば、直ちに失敗を返します。