【AngularJS】複数本の非同期通信が完了した後に処理を実行する方法。

$q.all()を用いる

AngularJSの$qはJavascriptのPromiseインターフェースを提供してくれるサービス。

$qdefer()メソッドを実行すると、Deferredオブジェクトを生成する事ができる。

このDefferedオブジェクトと$qサービス用いることで複数ある非同期通信の完了を検知することが出来るようになる。

各非同期通信処理関数は返り値としてPromiseオブジェクトを返却するように設計し、それを$q.all()メソッドでラップしてやればOK。

$qサービスはマジ便利過ぎて神がかってる。

$qに関する解説として下記ページも非常に参考になった。

http://dev.classmethod.jp/client-side/javascript/angularjs-q-promise/