我需要进行多次相互独立的doc object
调用。
$http
angular.forEach(carrierDetails, function(carrierDetail) {
(function(carrierId) {
CarrierService.getContact(carrierId).then(function(response) {
scope.contact[carrierId.toString()] = response.data.carrierOwners;
});
})(carrierDetail.carrierId);
});
无效,因为在$q.all()
中,任何失败的通话都会导致所有通话失败。就我而言,所有呼叫都是相互独立的。每个呼叫响应数据都将被推送到$q.all()
。我怎样才能做到这一点?谢谢!
答案 0 :(得分:1)
要使用$q.all()
,只需在每次调用时使用catch来处理失败的调用。然后解决这个承诺。
var promises = [];
promises.push(doSomethingAsynchronous()
.then(function (response) {
return {response: response};
})
.catch(function (response) {
return {failed: true, response: response};
})
);
$q.all(promises).then(doSomething);
现在所有承诺都可以保证解决,您可以检查哪些承诺失败。