Angularjs $q.reject不会在$http.get().then().catch()中重新显示异常
我处理的代码如下:Angularjs $q.reject不会在$http.get().then().catch()中重新显示异常,angularjs,Angularjs,我处理的代码如下: return promise.then(function(url) { return $http.get(url, data); }).then(function (response) { return response.data; }).catch(function (response) { return $q.reject(response); }); 我所要做的就是拒绝“catch”块中的承诺,以便由我的自定义实现$exceptionHandl
return promise.then(function(url) {
return $http.get(url, data);
}).then(function (response) {
return response.data;
}).catch(function (response) {
return $q.reject(response);
});
我所要做的就是拒绝“catch”块中的承诺,以便由我的自定义实现$exceptionHandler记录异常
根据我的观点,下面这行应该重新显示异常,但它没有这样做。因此,$exceptionHandler从不处理异常:
return $q.reject(reason); // why isn't it rethrowing?
很可能我误解了文档。错误正在重新抛出-因为控制器可以捕获错误并显示它
angular.module('app',[])
.controller(“应用程序”、功能($scope、service){
$scope.error={}
服务
.load('foo')
.catch(函数(错误){
角度扩展($scope.error){
原因:错误
});
});
})
.service('service',函数($http,$q){
var promise=函数promise(){
var d=$q.defer();
d、 拒绝(“某些原因”)
回报承诺;
}();
this.load=函数(url){
回报承诺
.然后(函数(){
返回$http.get(url);
})
.然后(功能(响应){
返回响应数据;
})
.catch(函数(原因){
返回$q.拒绝(原因);
});
}
});代码>
错误:{error.reason}
不应该是$q.reject(response)
<代码>原因
在任何地方都没有定义。感谢您捕捉到@kiswa,我纠正了错误。不幸的是,这两种方法都不起作用。谢谢,没问题。接下来要检查的是。。。实际上是否引发了异常?您可以通过在其中一个函数中显式地抛出一个来测试它。