はじめに デザイナーにとって非同期通信は1つの壁かなと思います。 自分もそうでしたが非同期処理を理解せずにjQueryでAjaxを行い、別の関数(B)から非同期通信の戻り値にアクセスしようとすると取得できている時とできていない時があるわけですね。非同期なわけですからデータの取得状況にかかわらず関数(B)は実行されるわけです。 Webサイトにちょっとしたデータを表示するだけであればコールバックで処理するだけで事足りるわけですが、AngularJSで作るような複雑なアプリケーションだとそうもいきません。ログイン認証を済ませてユーザー情報を取得し、ユーザーの権限に合わせて情報を何種類か取得しようとするとコールバックが深くなり(コールバック地獄)、加えて特定の処理だけを行うことができずとても不便です。処理方法としても欠点がありメンテナンス性も悪くなります。 そこで今回使うPromise(Defer
![[AngularJS 1]ウェブデザイナーがはじめるAngularJS:Promise(Deferred)をつかった非同期処理](https://cdn-ak-scissors.b.st-hatena.com/image/square/28ce70a4ba19573c729e61a380304d78f3fccffd/height=288;version=1;width=512/http%3A%2F%2Fwhiskers.nukos.kitchen%2Fassets%2Fimages%2Fogp.png)