在解决任何子承诺之前解决组合承诺
A combined promise is resolved before any sub-promise is resolved
我正在使用 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));
}
);
但在收到实际数据 "Got Data: ......"
的警报之前,我收到了 "Old and New: {"$$state":{"status":0}}"
的警报。为什么 $q.all
没有按预期工作?
将您的承诺包装在一个数组中:
[Get.get('backend/index.php/poster/pull'),Get.get('data/poster_past.json')]
我正在使用 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));
}
);
但在收到实际数据 "Got Data: ......"
的警报之前,我收到了 "Old and New: {"$$state":{"status":0}}"
的警报。为什么 $q.all
没有按预期工作?
将您的承诺包装在一个数组中:
[Get.get('backend/index.php/poster/pull'),Get.get('data/poster_past.json')]