Co dzieje się z $ q.all (), gdy niektóre połączenia działają, a inne nie?
Co dzieje się z $ q.all (), gdy niektóre połączenia działają, a inne nie?
Mam następujący kod:
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;
});
Gdy działają wszystkie wywołania $ http, tablica allResponses jest wypełniona danymi.
Kiedy się nie powiedzie, zrozumiem, że druga funkcja zostanie wywołana, a zmienna błędu poda szczegóły.
Czy jednak ktoś może mi pomóc wyjaśnić, co się stanie, jeśli niektóre odpowiedzi zadziałają, a inne nie?