Что происходит с $ q.all (), когда некоторые вызовы работают, а другие - нет?
Что происходит с $ q.all (), когда некоторые вызовы работают, а другие - нет?
У меня есть следующий код:
var entityIdColumn = $scope.entityType.toLowerCase() + 'Id';
var requests = $scope.grid.data
.filter(function (rowData, i) {
return !angular.equals(rowData, $scope.grid.backup[i]);
})
.map(function (rowData, i) {
var entityId = rowData[entityIdColumn];
return $http.put('/api/' + $scope.entityType + '/' + entityId, rowData);
});
$q.all(requests).then(function (allResponses) {
//if all the requests succeeded, this will be called, and $q.all will get an
//array of all their responses.
console.log(allResponses[0].data);
}, function (error) {
//This will be called if $q.all finds any of the requests erroring.
var abc = error;
var def = 99;
});
Когда все вызовы $ http работают, массив allResponses заполняется данными.
Когда один из них терпит неудачу, я понимаю, что будет вызвана вторая функция и переменная ошибки предоставит детали.
Однако может ли кто-нибудь помочь мне объяснить, что произойдет, если некоторые ответы сработают, а другие не сработают?