すべて終わったら実行

すべて終わったら実行

[1] すべて終わったら実行するオブジェクトは、 Promise.all のような動作のアルゴリズムの説明で使うものです。

[2] 仕様書では、「すべて○○まで待つ」のように英語で説明されています。

[3] Promise.all とは、コールバックの実行タイミングが異なります。

[11] オブジェクトは、次の状態を持ちます。

処理状態群
初期値は空集合
完了時処理
初期値は null
中断済み
初期値は

[19] 処理状態は、次の状態を持ちます。

中断
初期値は null
全体

[4] オブジェクトについて処理中断を実行するには、 次のようにします。

  1. [5] 処理状態を、新しい処理状態に設定します。
    [21] 処理状態
    中断
    中断
    全体
    オブジェクト
  2. [20] オブジェクト処理状態群に、処理状態を追加します。
  3. [6] 処理状態について処理を実行します。 例外投げられれば、再び投げます。

[7] 処理状態の完了は、次のようにします。

  1. [18] オブジェクトを、処理状態全体に設定します。
  2. [8] オブジェクト処理状態群から、処理状態を削除します。
  3. [9] オブジェクト完了時処理null でない場合、
    1. [10] オブジェクト処理状態群の場合、
      1. [17] オブジェクト完了時処理を実行します。

[22] オブジェクトについて中断するには、次のようにします。

  1. [26] オブジェクト中断済みを、に設定します。
  2. [23] オブジェクト処理状態群の各処理状態について、
    1. [24] 処理状態中断を実行します。
    2. [25] 処理状態を完了します。

[12] オブジェクトについて処理を完了時に実行するとは、 次のようにします。

  1. [13] オブジェクト処理状態群の場合、
    1. [14] 処理を実行します。
  2. [15] それ以外の場合、
    1. [16] オブジェクト完了時処理を、処理に設定します。