TL;DR

複数の Effect を合成して、より複雑なプログラムを組み立てる関数。

仕組み

Effect.flatMap は、第 1 引数で受け取った Effect の成功値を取り出し、第 2 引数の関数に渡す。第 2 引数の関数は次の Effect を返す。こうして前の処理の結果を使う処理を、Effect のままつないでいける。

例

Effect.promise で作った fetchRequest と jsonResponse をつなぐ。

const main = Effect.flatMap(fetchRequest, (response) => jsonResponse(response))
//                                         ^ response: Response
 
Effect.runPromise(main) // 実行

引数をそのまま渡すだけなので、次のように短く書ける。

const main = Effect.flatMap(fetchRequest, jsonResponse)

関連

出典