【问题标题】:Angular equivalent of jQuery deferred.always() callbackjQuery deferred.always() 回调的 Angular 等价物
【发布时间】:2016-05-23 20:03:07
【问题描述】:

无论响应是否成功,我们都可以在jQuery中使用.always()回调函数来处理响应。

在 AngularJS 中是否有类似的这种用法?

//jQuery
$.get( "test.php" ).always(function() {
  alert( "$.get completed with success or error callback arguments" );
});

//AngularJS
$http({
  method: 'GET',
  url: '/someUrl'
}).then(function successCallback(response) {
    //success
  }, function errorCallback(response) {
    //error
  });

//how can i handle always?

【问题讨论】:

标签: javascript angularjs ajax angular-promise


【解决方案1】:

您可以使用 Angular 承诺的 finally method

【讨论】:

    【解决方案2】:

    来自$q 服务的finally() 方法用于此目的:

    $http({
      method: 'GET',
      url: '/someUrl'
    }).then(function successCallback(response) {
        //success
    }).catch(function errorCallback(response) {
        //error
    }).finally(function() {
        //Callback method
        //Executed always, no matter of success or fail
    });
    

    finally()回调返回promise时的重要提示:

    finally 返回一个 Promise,它会以相同的方式解析 履行价值或拒绝原因作为承诺。但是,如果callback 返回一个承诺,返回的承诺的解决方案将是 延迟到回调返回的承诺完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-02
      • 2013-09-16
      • 2021-10-04
      • 1970-01-01
      • 2016-08-30
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多