请求Interceptor在响应中强制执行Catch块

时间:2015-09-17 20:28:49

标签: angularjs

以下是我服务的回复:

response = response.then(function (data) {
        return data.data;
    });
    response.catch(function (data) {
        $q.reject(data);
    });
    // Return the promise to the controller
    return response;

在拦截器中我回来了:

return $q.reject();

但是,我仍然要回到:

response.then

有可能回到catch区块吗?

由于

添加更多代码:

.service('APIInterceptor', function ($q, $rootScope, UserService) {
var service = this;

service.request = function(config) { 
    return $q.reject();
    //return config;
};
service.responseError = function (response) {        
    return response;
};
})

1 个答案:

答案 0 :(得分:1)

您的.request会产生错误(通过执行return $q.reject()),但您的.responseError“会处理”该错误(由于存在),从而导致整体成功解决。

确实,删除.responseError处理程序会使错误冒泡到.catch。或者,您也可以在return $q.reject().responseError