12

complete()Angular.js で提供される promise API を使用して、$http 呼び出しの結果に関係なく関数が確実に実行されるようにするにはどうすればよいですか?

$http({
    method: 'POST',
    url: submitUrl,
    data: $scope.data
})
.success(function(data) {
      // execute this code on success
})
.error(function(data) {
      // execute this code on error
})
.complete(function() {
  // execute this code regardless of outcome
});

リクエストが完了したら、これを使用して AJAX スピナー アイコンを非表示にすることができます。リクエストの結果に関係なく、スピナーを非表示にする必要があります。

4

3 に答える 3

18

私はAngular.jsの世界最高の専門家ではありませんが、次のようにできることを理解しています:

whatever.then(function() {
    // success code here
}, function() {
    // error code here
    return true; // return anything that's not undefined (and not a `throw()`) to force the chain down the success path at the following then().
}).then(function() {
    // "complete" code here
});

.then()$q promise の唯一のメソッドである、1 つ以上の から何かを考案することを本質的に強制されます。

于 2013-06-19T01:45:04.663 に答える