$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サービス
AngularJS
非同期処理のユーティリティクラス。
まとめるのがしんどかったのと
非常にわかりやすい記事があったので参考にさせていただいた。
dev.classmethod.jp
こいつが非常に強力で、なるべくdirectiveやcontrollerでは直接サービス依存しないようにしている・・・。
Promise
Promiseとは
(※以下はES6のPromiseについての資料です。Angularのとは用法が若干異なります。)
qiita.com
Angularは、Promiseパターンのオブジェクトを独自に提供している。
IE11など、ES6のPromiseを実装していないブラウザでも安心して?使える。
AngularのPromiseもES6と同様に、一般にPromiseパターン、そしてFutureパターン(こちらのほうの性格が強い)を足したような実装になっている。