の角度で$ qを使用して好きです:
var deferred = $q.defer();
$http.get(config.apiHost + details.url)
.success(function (data) {
deferred.resolve(data);
}).error(function (msg) {
deferred.reject(msg);
});
return deferred.promise;
が、我々はまた、$を使用しないでも、このアプローチを使用することができますQ:
return $http.get(config.apiHost + details.url)
.success(function (data) {
return data;
}).error(function (msg) {
return msg;
});
と$ HTTP自体は約束を返すように、私はまた、より単純化されたアプローチを使用することができます。
$http.get(config.apiHost + 'posts')
.success(function (data) {
console.log(data)
}).error(function (msg) {
console.log(msg);
});
では、$ qと$ httpの間のこれらの間の違いは何でしょうか?両方とも約束を返し、どちらも非同期ですか? angularは$ qにいくつかの追加機能を提供しますか? 良い答えが見つかりません。
あなたは$ qを持つ他の非同期操作との約束を返すことができます。 $ httpはAJAX呼び出しから約束を返します。 – Hoyen
のような他の操作?ファイルを読み込むなど –
デフォルトで約束をサポートしていません$タイムアウト – Hoyen