34. `Promise.any()`を実装する
JavaScriptお役に立つのか?
シェアしよう
トータルで - accepted /- tried
Promise.any() は Promise オブジェクトの反復可能オブジェクトを受け取り、反復可能オブジェクトの中にあるプロミスの一つが満足するとすぐに、そのプロミスの値で解決される単一のプロミスを返します。反復可能オブジェクトの中に満足可能なプロミスがない場合 (与えられたプロミスがすべて拒否された場合)、返されたプロミスは AggregateError という、個々のエラーをグループ化した Error の新しいサブクラスで拒否されます。本質的には、このメソッドは Promise.all() の反対です。
- from MDN
Promise.any()
を自力で実装できますか?
補足
AggregateError
はまだChromeにサポートされていないが、テストするときに実装をインジェクトしているので、そのまま使えます。
new AggregateError(
'No Promise in Promise.any was resolved',
errors
)