Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs $q.reject不会在$http.get().then().catch()中重新显示异常_Angularjs - Fatal编程技术网

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,我纠正了错误。不幸的是,这两种方法都不起作用。谢谢,没问题。接下来要检查的是。。。实际上是否引发了异常?您可以通过在其中一个
函数中显式地抛出一个来测试它。