カリー化関数を利用して非同期処理を整理する

カリー化関数を使うと、複雑になりがちな非同期処理のコールバックを比較的シンプルに記述できます。

サンプル1

サンプル2

Google Map Apiを使っての地図作成では、

  • geocodeで緯度経度取得→地図移動→XHR→地図上にマーカー表示
  • 位置情報取得→地図移動→XHR→地図上にマーカー表示

上記の処理をよく行いますが、「geocode」「位置情報取得」「XHRでのデータの取得」などは基本”非同期”の処理のためコールバックが入れ子になって複雑になりがちです。
そんなときは、curryを使って非同期処理のコールバックをまとめるとシンプルに整理できたりします。

実際にsampleを作ってみました。

位置情報を取得して周辺500m内の車椅子可のお店を表示する地図です。(位置情報が使えない場合は住所で検索してください)
gurunavi

sample

↓ curryを使うことで非同期処理をこんな感じに書けます。詳しい内容はリンク先のソースを参照してください。