gpt4 book ai didi

angularjs - 从 'response' 拒绝到 'responseError'

转载 作者:行者123 更新时间:2023-12-03 22:33:41 25 4
gpt4 key购买 nike

有时,我使用的 API 会返回 200 ok即使出现了错误。响应 JSON 对象将类似于:

{
error: true
}

我已经建立了一个 $http response拦截器只是检查这个错误并拒绝它。我希望它然后跳入我的 responseError功能:
$httpProvider.interceptors.push(function($q) {
return {

response: function (response) {

if (response.data.error) {

// There has been an error, reject this response
return $q.reject(response);
}

return response;
},

responseError: function(rejection) {

// Display an error message to the user
...

return $q.reject(rejection);
}
}
});

问题是,即使在拒绝回复后,我的 responseError没有调用函数。它被调用 500错误等,所以我知道它正在工作。我希望拒绝也会做同样的事情。

来自 docs :
responseError: interceptor gets called when a previous interceptor threw an error or resolved with a rejection.

关于缺少什么的任何想法?

最佳答案

看起来这是不可能做到的。为了减少重复代码,只需单独声明错误处理函数并在 response 和 responseError 函数中重用它。

$httpProvider.interceptors.push(function($q) {

var handleError = function (rejection) { ... }

return {

response: function (response) {

if (response.data.error) {
return handleError(response);
}

return response;
},

responseError: handleError
}
});

关于angularjs - 从 'response' 拒绝到 'responseError',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21778183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com