gpt4 book ai didi

javascript - 每 500 毫秒 http 请求一次,直到请求完成 Angular

转载 作者:塔克拉玛干 更新时间:2023-11-01 19:07:47 25 4
gpt4 key购买 nike

我正在寻求以每 500 毫秒的持续请求请求服务器。我想先请求,如果请求在 500 毫秒后没有完成,我想再次发出相同的请求。然后再等500ms,检查是否不完整。我想重复这个过程,直到请求完成。

现在,我的请求是这样的:

$http({
method: method,
url:baseUrl,
headers: {
'Content-Type' : 'application/json; charset=utf-8',
'Data-Type': 'json'
},
data: resultService.sendData(true),
cache:false
})
.success(function(data,status,headers,config){ // accepts more parameters
$timeout(function(){
resultService.activeSearch=false;
$timeout(function(){
request= $filter('orderBy')(data,['price','id']);
},0);
},1000);

})
.error(function(){
resultService.activeSearch=false;
function(){
request={error:1};
};
});

};

我想过用这样的东西

(function tick(){
$http({
method: method,
url:baseUrl,
headers: {
'Content-Type' : 'application/json; charset=utf-8',
'Data-Type': 'json'
},
data: resultService.sendData(true),
cache:false
})
.success(function(data,status,headers,config){ // accepts more parameters
request=data;
$timeout(tick,500);
$timeout(
function(){resultService.activeSearch=false;
},1000);

})
.error(function(){
$timeout(tick,500);
resultService.activeSearch=false;
function(){
request={error:1};
};
});
})();

这没有按预期工作。我哪里错了?

最佳答案

使用$http的超时参数

function MyCtrl($scope, $http){
$scope.logs=''

// Will try to get targetUrl every 500ms, then call successCallback with the data
function tryToGet(targetUrl,successCallback){
$scope.logs+='\n New attempt \n';

// Try a get with the timeout argument
var attempt = $http.get(targetUrl,{timeout:500})

// On error, try again
attempt.error(function(){
tryToGet(targetUrl,successCallback);
});

// On success, exectute the callback
attempt.success(successCallback);
}
function whenOk(data){
$scope.logs+=data
}
tryToGet('http://google.com', whenOk)

}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<pre ng-controller="MyCtrl" ng-bind="logs">

</div>

关于javascript - 每 500 毫秒 http 请求一次,直到请求完成 Angular,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28625567/

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