Ce qui se passe avec q$.tous les() lors de certains appels de travail et d'autres échouent?

Ce qui se passe avec q$.tous les() lors de certains appels de travail et d'autres échouent?

J'ai le code suivant:

    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;
    });

Lorsque la totalité de la somme http appelle travail puis la allResponses tableau est rempli avec des données.

Quand on échoue à la c'est ma compréhension que la deuxième fonction sera appelée, et la variable d'erreur donné plus de détails.

Toutefois quelqu'un peut-il aider à m'expliquer ce qui se passe si certaines des réponses de travail et d'autres échouent?

  • L'objectif de $q.all est d'effectuer des appels en parallèle, mais de gérer tous les résultats simultanément, de sorte que si l'un manque, il abandonne immédiatement. Pensez à cela comme une sorte de booléens ET, si l'une est fausse, le résultat sera faux.
  • Similaire: stackoverflow.com/questions/21626251/...
InformationsquelleAutor Alan2 | 2013-11-13