簡體   English   中英

只能為AngularJS $ http promises分配一個錯誤/成功函數嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM