gpt4 book ai didi

javascript - 防止 AngularJS $http 在超时时返回

转载 作者:行者123 更新时间:2023-11-27 23:42:35 25 4
gpt4 key购买 nike

我正在做自定义 $http 服务,看起来像这样:

angular.factory('myHttp', function($http){
var obj = {};

obj.get = function(path) {
return $http.get(path,{timeout: 5000}).error(function (result) {
console.log("retrying");
return obj.get(path);
});
}
});

系统运行良好。成功时返回数据,连接失败时重试。但是,我面临的问题是当连接超时时它会返回到 Controller 。如何防止它返回并继续重试?

最佳答案

您需要使用$q.reject。这将表明错误处理程序再次失败,结果应填充到父错误处理程序 - 而不是成功处理程序。

  obj.get = function(path) {
return $http.get(path, {
timeout: 5000
}).then(null, function(result) {
console.log("retrying");
if (i < retry) {
i += 1;
return obj.get(path);
} else {
return $q.reject(result); // <-- use $q.reject
}
});
}

参见plunker

关于javascript - 防止 AngularJS $http 在超时时返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33541584/

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