[1] すべて終わったら実行するオブジェクトは、 Promise.all
のような動作のアルゴリズムの説明で使うものです。
[2] 仕様書では、「すべて○○まで待つ」のように英語で説明されています。
[3]
Promise.all
とは、コールバックの実行タイミングが異なります。
[11]
オブジェクトは、次の状態を持ちます。
- 処理状態群
- 初期値は空集合。
- 完了時処理
- 初期値は
null
。 - 中断済み
- 初期値は偽。
[19]
処理状態は、次の状態を持ちます。- 中断
- 初期値は
null
。 - 全体
[4] オブジェクトについて処理と中断を実行するには、
次のようにします。
- [5] 処理状態を、新しい処理状態に設定します。[21] 処理状態
- 中断
- 中断
- 全体
- オブジェクト
- [20] オブジェクトの処理状態群に、処理状態を追加します。
- [6] 処理状態について処理を実行します。
例外が投げられれば、再び投げます。
[7]
処理状態の完了は、次のようにします。
- [18] オブジェクトを、処理状態の全体に設定します。
- [8] オブジェクトの処理状態群から、処理状態を削除します。
- [9] オブジェクトの完了時処理が
null
でない場合、- [10] オブジェクトの処理状態群が空の場合、
- [17] オブジェクトの完了時処理を実行します。
[22] オブジェクトについて中断するには、次のようにします。
- [26] オブジェクトの中断済みを、真に設定します。
- [23] オブジェクトの処理状態群の各処理状態について、
- [24] 処理状態の中断を実行します。
- [25] 処理状態を完了します。
[12] オブジェクトについて処理を完了時に実行するとは、
次のようにします。
- [13] オブジェクトの処理状態群が空の場合、
- [14] 処理を実行します。
- [15] それ以外の場合、
- [16] オブジェクトの完了時処理を、処理に設定します。