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?

questionAnswers(7)

yourAnswerToTheQuestion