mex

2021.07.16

pipeline-operatorがどうなってるのか気になり、そのままtc39のproposalsを見ていた。pipeline-operatorは2018に提案されてまだstage1だからもう仕様に入るのはもう少し先の話だと思う。

loading

新しく採択されたのを眺める。Promise.anyももう入ってくるらしい。

loading

どういうシーンで使えるのかちょっと調べる

loading

Promise.allSettled、かなり使いどころがありそう。

allSettled は、 all とは違い、個々が Resolve/Reject どちらになっても、最後までとにかく全て実行する。実行した結果を配列として Resolve するため、基本的に allSettled 自体は Reject しない。
したがって、 status: 'rejected' な結果だけをリトライすれば良い。完了したものを無駄にせず、効率よく簡単に実装することができるだろう。

Promise.anyはどうやって使うのかいまいちわからなかった。でもまぁ使われていくうちに誰かがかっちょいい利用シーンを見つけてくれると思う。

any は rece とは違い、 Resolve する前に Reject する Promise があっても無視し、最初にいずれかが Resolve するまで待つ。そして、全ての Promise が Reject した場合にのみ全体を Reject する。
従って、「最初に Resolve する Promise を待ちたい」という要件を満たす場合は、 any を使えばそれだけで良い。