/
139.txt
41 lines (32 loc) · 1.85 KB
/
139.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
[1] [DFN[すべて終わったら実行]]する[[オブジェクト]]は、 [CODE[Promise.all]]
のような動作の[[アルゴリズム]]の説明で使うものです。
[2] [[仕様書]]では、「すべて○○まで待つ」のように[[英語]]で説明されています。
[3]
[CODE[Promise.all]] とは、[[コールバック]]の実行タイミングが異なります。
[11]
[VAR[オブジェクト]]は、次の状態を持ちます。
[FIG(list members)[
: [F[予定数]] : 初期値は [N[0]]。
: [F[完了数]] : 初期値は [N[0]]。
: [F[完了時処理]] : 初期値は [CODE[null]]。
]FIG]
[4] [VAR[オブジェクト]]について[VAR[処理]]と[VAR[中断処理]]を処理するには、
次のようにします。
[FIG(steps)[
= [5] [VAR[オブジェクト]]の[F[予定数]]を、 [N[1]] [[インクリメント]]します。
= [6] [VAR[結果]]を、[VAR[処理]]を実行した結果に設定します。
= [8] [VAR[オブジェクト]]の[F[完了数]]を、 [N[1]] [[インクリメント]]します。
= [9] [VAR[オブジェクト]]の[F[予定数]]と[VAR[オブジェクト]]の[F[完了数]]が等しい場合、
== [10] [VAR[オブジェクト]]の[F[完了時処理]]が [CODE[null]] でない場合、
=== [17] [VAR[処理]]を実行します。
= [7] [VAR[結果]]を返します。
]FIG]
;; [18] [VAR[結果]]は[[例外]]を[[投げ]]た場合もあります。
[12] [VAR[オブジェクト]]について[VAR[処理]]を完了時に実行するとは、
次のようにします。
[FIG(steps)[
= [13] [VAR[オブジェクト]]の[F[予定数]]と[VAR[オブジェクト]]の[F[完了数]]が等しい場合、
== [14] [VAR[処理]]を実行します。
= [15] それ以外の場合、
== [16] [VAR[オブジェクト]]の[F[完了時処理]]を、[VAR[処理]]に設定します。
]FIG]