gpt4 book ai didi

javascript - 取消HTTP请求并解决 Angular 中的错误函数

转载 作者:行者123 更新时间:2023-12-02 15:45:21 25 4
gpt4 key购买 nike

嗨,我想在 2 秒后取消我的 http 请求。如果没有收到数据,它应该解析为错误函数并返回一个空对象。

我知道我必须以某种方式使用超时属性。我到底在哪里使用 $timeout ?我不太确定我是否理解正确。

app
.service('testService',['$http','$q','$timeout',
function($http,$q,$timeout){

var canceler=$q.defer();

this.options = function (long,lat) {


return $http({
method: 'POST',
url: '/coordinates',
headers: {
'Content-Type' : 'application/json; charset=utf-8',
'Data-Type': 'json'
},
data: {
"long":long,
"lat": lat
},
timeout:canceler.promise

}).then(function (response) {
return response.data;
},function(error){
return {};
});
};
}]);

最佳答案

在$timeout中使用reject作为

$timeout(function(){
return canceler.reject(reason);
},2000);

因此,您的 $http 请求如下所示:

var timeoutCase = function(){
$timeout(function(){
return canceler.reject(reason);
},2000);
}

var apiCall = function(){

// call timeout function
timeoutCase();

// http call
return $http({
method: 'POST',
url: '/coordinates',
headers: {
'Content-Type' : 'application/json; charset=utf-8',
'Data-Type': 'json'
},
data: {
"long":long,
"lat": lat
},
timeout:canceler.promise

}).then(function (response) {
$timeout.cancel(timeoutCase);
return response.data;
},function(error){
return {};
});
}

// call Http function.
api().then(function(response){
console.log(response);
})

关于javascript - 取消HTTP请求并解决 Angular 中的错误函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32242775/

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