coとthunkifyとgeneratorJavaScriptのgeneratorを調べると一緒に出て来やすい、coを使ってみたメモ。flow-controlとあるけどgeneratorやPromiseをいい感じに扱ってくれるライブラリ、という理解で良いのかな。いい感じに、というところがよくわかってない上にここの理解が一番大事だと思うのだけど。ver.0.11を使い、オプションに--harmonyもしくは--harmony-generatorを指定する。index.jsHelloWorld!Promiseを返す関数をcoに渡したgenerator内でyieldを使って同期的に書いている。エラーのハンドリングはcoが返すPromiseのcatchで行っている。このPromiseはbluebirdなどのものでなくて純正のES6のPromiseなのでcatchを(もしくはthenの第二引数に渡す関数)を書いておかないと構文エラーでさえも出力されないので、どんなときでも書いておいた方が良いと思う。(とか書いておいてこのページでも一部書いてない)yieldとgeneratorはそんなにいいかな、と思ってたのだけど同期的に書けるとこれはこれで良いと思った。今までのコールバック地獄みたいなものでも浅ければ慣れてるので良いのだけど。(module.js:310:12)try-catchでエラーもつかめる。index.js5anonoymous-generator?も実行できる。index.js5値を受け取って出力する。yieldはつけないといけないけど、普通の関数を実行して値を受け取るようにして書く。coと同じくよく使われるらしいthunkifyもついでに使ってみた。コールバック引数を渡す関数をcoで使い易いように変換するモジュール、でいいのかな。thunkifyをしておく。index.jsstrコールバック関数を受け取るget()をthunkifyで変換して、それをco内でyieldして同期的に値を受け取ってる。]Promiseの並列実行もできる。受け取った配列には関数を書いた順番に戻り値が入る。}オブジェクトで受け取るとそれぞれのキーにそれぞれの戻り値が入る。慣れないとわからない上にPromiseの知識も前提として必要になってくると思うけど、慣れればだいぶ読みやすいと思う。コールバック関数を渡したり、Promiseで書いたりということが多かったのだけど、それらになれたせいでこれらの同期的な書き方に違和感がある。