回答編集履歴
1
説明の改善
answer
CHANGED
@@ -44,15 +44,14 @@
|
|
44
44
|
array = divide(array, 3)
|
45
45
|
array = array.map(val => val.map(val2 => main(val2)))
|
46
46
|
|
47
|
-
//ここまで!あえてreduceループさせている処理を省いてます。
|
47
|
+
//ここまで!あえてpromisewrapperに加工している処理と、reduceループさせている処理を省いてます。
|
48
48
|
|
49
49
|
```
|
50
50
|
navcaさんの想像とは違う挙動になっていると思います。
|
51
51
|
console.logが実行され、setTimeoutも実行されているのが確認できたと思います。
|
52
52
|
恐らく、navcaさんは`Promise`の引数はcallback関数のイメージだったのではないでしょうか。
|
53
53
|
|
54
|
-
`Promise`は処理の終了を教えてくれる、resolve,rejectされるまで待つ、という仕組みなだけでして、
|
54
|
+
`Promise`は処理の終了を教えてくれる、resolve,rejectされるまで待つ、という仕組みの1パーツなだけでして、遅延評価される関数を包み込んだオブジェクト?(言葉の表現が下手ですみません)ではありません。この勘違いがなくなれば、きっとreduceを使ったPromiseなループ処理も怖くなくなると思います。
|
55
|
-
この勘違いがなくなれば、きっとreduceを使ったPromiseなループ処理も怖くなくなると思います。
|
56
55
|
|
57
56
|
理解の助けになるように、navcaさんの関数定義をそのまま使った場合で修正しますと・・・
|
58
57
|
```js
|