teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

説明の改善

2019/03/06 03:12

投稿

so87
so87

スコア789

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