[英]Can only one error / success function be assigned for AngularJS $http promises?
我正在嘗試執行以下操作:
$http.get('..').error(someFunc).error(someFunc2);
但是,它似乎無法正常工作,我收到各種錯誤。
我認為可以通過這種方式鏈接多種方法嗎? 我究竟做錯了什么?
如果您這樣做:
$http.get('..').error(someFunc).error(someFunc2);
僅當someFunc引發錯誤時,someFunc2 才會觸發。 這與Jonathan Lonowski指出的代碼段一致: https : //github.com/angular/angular.js/blob/v1.1.5/src/ng/http.js#L714-L719
如果要運行多個功能,可以執行以下操作:
$http.get('..').error(function () {someFunc();someFunc2();});
使用諾言鏈接的更優雅的方式。 對於僅錯誤處理:
$q.all($http.get('..')).catch(function(errorReason) {...}).catch(function(errorReason) {...})
對於成功/錯誤處理:
$q.all($http.get('..')).then(function(response) {...}, function(errorReason) {...}).then(function(response) {...}, function(errorReason) {...})
但是它似乎不起作用
是的,它確實有效。 但是請注意, error
方法有效,因此您的代碼段等同於
var promise = $http.get('..');
promise.error(someFunc);
promise.error(someFunc2);
如果你預期的鏈接行為,其中someFunc2
捕捉僅在所產生的錯誤someFunc
,使用.catch()
方法,而不是.error()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.