我在我的控制器中使用兩個工廠調用。在這兩個捕獲中,我想調用單獨的函數來處理這些錯誤。
我有:
someFactory.functionOne().then(function (data) {
$scope.one = data;
}).catch(functionToHandleOne());
someFactory.functionTwo().then(function (data) {
$scope.two = data;
}).catch(functionToHandleTwo());
是在沒有更好的方法,我可以用$ q.all()之類
$q.all({
one: someFactory.functionOne(),
two: someFactory.functionTwo()
}).then (function (data) {
$scope.one = data.one;
$scope.two = data.two;
}).catch(
//here I have to call functions functionToHandleOne() and functionToHandleTwo() according to error caused which function call
);
捕捉將被儘快該函數的一個拒絕執行。所以如果你需要爲這個函數處理錯誤,不管用什麼函數,你都不能使用$ q.all,否則只需要使用一個匿名函數並確定錯誤變量屬於哪個函數並調用相應的函數。 – John