34. `Promise.any()`を実装する

少し工夫が必要  - accepted / - tried

MDNから

Promise.any() は Promise オブジェクトの反復可能オブジェクトを受け取り、反復可能オブジェクトの中にあるプロミスの一つが満足するとすぐに、そのプロミスの値で解決される単一のプロミスを返します。反復可能オブジェクトの中に満足可能なプロミスがない場合 (与えられたプロミスがすべて拒否された場合)、返されたプロミスは AggregateError という、個々のエラーをグループ化した Error の新しいサブクラスで拒否されます。本質的には、このメソッドは Promise.all() の反対です。

Promise.any()を自力で実装できますか?

補足

AggregateError はまだChromeにサポートされていないが、テストするときに実装をインジェクトしているので、そのまま使えます。

new AggregateError(
  'No Promise in Promise.any was resolved', 
  errors
)

エッジケースを網羅しよう。

(1)
(129)