diaryこの広告は、90日以上更新していないブログに表示しています。2012-07-25JavaScriptでの非同期関数合成JavaScriptUnserscore.jsや互換ライブラリのLo-Dashを使うと関数合成が出来ます。複数個の関数があって、関数を呼び出した結果を使って関数を呼び出して...っていうのを1個の関数にします。ドキュメントの例を見れば分かるかと。簡略化のために関数合成の対象になる関数を1引数・戻り値ありの関数とします。これを非同期処理をする関数に当てはめるとcallbackを含む2引数・戻り値なしの関数が当てはまるでしょう。この場合のcallbackは1引数の関数とします。logを出力するcallback関数を定義しましょう。console.log(result);}次にcallbackを含む2引数・戻り値なしの関数を定義します。別に非同期処理はやっていないです。10結果を引き回す形で呼んでみましょう。10呼び出しが深くなるとcallbackのネストが段々鬱陶しくなります。},result);},4);Function#bindによる部分適用に置き換えます。10べた書き部分を汎用にしてみます。})})(add1,mul2,log)(4);今回やりたいことは、callbackを含む2引数・戻り値なしの関数をn個合成してcallbackを含む2引数・戻り値なしの関数にすることなのでこれは違います。//11「callbackを含む2引数・戻り値なしの関数をn個合成してcallbackを含む2引数・戻り値なしの関数にする」ので合成した関数も合成対象にできます。汎用性のある多引数の関数を定義して部分適用したものを合成すればいいと思います。読者になる検索リンクはてなブログブログをはじめる週刊はてなブログはてなブログPro最新記事r.jsでビルドする際に設定として使うbuild.jsを動的にする。月別アーカイブはてなブログをはじめよう!monjudohさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。