ECMAScript 2015 で導入された Promise の関数 all と race だけで表現できる非同期処理の待ち合わせについての考察です。 考察の対象とした待ち合わせの条件は、「過半数の Promise が解決されるまで待つ」をはじめとした特殊なものです。結論からいうと、all と race だけを組み合わせて、多数決による待ち合わせを表現可能です。ただし、与えられた Promise の解決順序に依存する待ち合わせは、all と race だけでは書けません(ただし証明はできてないです 追記2020/11/08 書けるようです(否定的に証明されました)。 制約条件 Promise#then を使えば、なんでもできてしまいます。 そのため、この後の議論では Promise#then は封印します。 待ち合わせの書き方 まず、待ち合わせの表現方法を導入します。 非同期に解決される