【AngularJS1】$http,$q,Promise回りメモ
$httpサービス
$http | AngularJS 1.2 日本語リファレンス | js STUDIO
非同期なHTTPリクエストを提供してくれるサービス。 例えば、putでURL投げて結果を取得する例。
const url = 'http://api.hostname.com/manapi/user/add'; let data = { userid : userid, username : username, passowrd : password, }; $http.put(url, data) .success(function(data, status, headers, config) { let user_no = data.id; alert(`ユーザーを登録しました。(ユーザーNo:${user_no}`); }) .error(function(data, status, headers, config) { alert('通信に失敗しました。時間をおいて再度ご実行ください。'); });
jQueryのajax()やget()などと機能自体は同じ。
Promiseパターンなオブジェクトを戻り値として返すので、 あとでメモる$qサービスなどと連携して楽に非同期制御が書ける。 (よく、こんな仕組みを考えたものだ。)
$qサービス
非同期処理のユーティリティクラス。
まとめるのがしんどかったのと 非常にわかりやすい記事があったので参考にさせていただいた。
こいつが非常に強力で、なるべくdirectiveやcontrollerでは直接サービス依存しないようにしている・・・。
Promise
Promiseとは (※以下はES6のPromiseについての資料です。Angularのとは用法が若干異なります。)
Angularは、Promiseパターンのオブジェクトを独自に提供している。 IE11など、ES6のPromiseを実装していないブラウザでも安心して?使える。
AngularのPromiseもES6と同様に、一般にPromiseパターン、そしてFutureパターン(こちらのほうの性格が強い)を足したような実装になっている。