我正在使用AngularJS及其$q
。
我写了一个服务如下:
Get.$inject = ['$q', '$http'];
function Get($q, $http) {
return {
get: function(url) {
var deferred = $q.defer();
$http.get(url + '?' + Math.random()).success(function(data) {
alert('Got data: ' + JSON.stringify(data));
deferred.resolve(data);
});
return deferred.promise;
}
}
}
并像
一样使用它$q.all(Get.get('backend/index.php/poster/pull'), Get.get('data/poster_past.json')).then(
function(NewAndOldPosters) {
alert("Old and New: " + JSON.stringify(NewAndOldPosters));
}
);
但在收到实际数据"Old and New: {"$$state":{"status":0}}"
的提醒之前,我收到了"Got Data: ......"
的提醒。如果$q.all
无法正常工作,怎么会发生这种情况?
答案 0 :(得分:2)
将你的承诺包裹在一个阵列中:
[Get.get('backend/index.php/poster/pull'),Get.get('data/poster_past.json')]