Skip to content

Latest commit

 

History

History
26 lines (19 loc) · 1.27 KB

functional-promise.adoc

File metadata and controls

26 lines (19 loc) · 1.27 KB

高階関数とpromise

Promiseで複数の処理を扱うときには次のような流れに乗るとスムーズに書けます。

  1. 各処理をpromise化する関数等を用意する

  2. 元データを配列で用意して、promise化処理を通してpromiseオブジェクトの配列を作成する

  3. promiseの配列に対して Promise.allPromise.race を使いまとめて扱う

  4. promiseの配列に対するresolveの結果も配列となる

このような流れを作ることで、全てのデータを配列として扱うことができるようにすることで、 Promiseのコントロールフローがキレイに書ける可能性が高くなります。

元データ(配列) -> promiseオブジェクトの配列 -> resolveで渡された値の配列

配列には mapforEach 等の高階関数が用意されているため、 配列の中身(実データやpromiseオブジェクト)に触る処理は関数として用意することで、 高階関数の引数に処理を渡すだけとなり表面的な分岐等の処理を減らすことができます。

高階関数::
    関数を引数として渡す関数の事

実際に幾つか例を見てみましょう。