この解答例はChatGPTによって生成されています,正しいかは自己判断で。 皆の投稿からも解答例が見つかるかもしれませんよ。

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

はい、以下は自作の Promise.any() 実装例です。

function PromiseAny(promises) {  return new Promise((resolve, reject) => {    let rejections = [];    for (const p of promises) {      Promise.resolve(p).then(resolve).catch(error => {        rejections.push(error);        if (rejections.length === promises.length) {          reject(new AggregateError('No Promise in Promise.any was resolved', rejections));        }      });    }  });}

この実装では、与えられた promises を1つずつ反復し、各プロミスを解決するか、拒否するかを見て、 resolve または catch するように設定しています。 AggregateError を実装している場合は、 reject されます。それ以外の場合、最初に解決されたプロミスが resolve されます。