gpt4 book ai didi

javascript - 使用 $interval 在 AngularJS 中每秒触发一个 AJAX 请求

转载 作者:搜寻专家 更新时间:2023-10-31 23:20:11 26 4
gpt4 key购买 nike

间隔函数在我单击的最后一个元素中不断循环。我想要发生的是在我单击一个新元素时取消最后一个间隔,并在我单击它时重新开始。我点击了 ng-repeat 中的每一项。

这是我的代码。

$scope.onClickTab= function(x,tkid, sid, $event){
var vtpostdata = 'TokenId=' + tkid +
',SessionId=' + sid +
',ChatMessageCount=' + 0 +
',retrytimes=' + 10 +
',delayms=' + 100;
$interval(function() {
$http.jsonp(ServiceDomainSite + 'myApi' + vtpostdata + '?callback=JSON_CALLBACK&t='
+ new Date().getTime())
.success(function (data) {
var resultObject = angular.fromJson(data.Rows);
$scope.Chats = resultObject;
});
}, 1000);
};

最佳答案

$interval.cancel() 很好用。我还删除了 var vtpostdata,因为在您再次请求 $http 之前,它不会在代码中使用。所以此时不​​需要创建var。另请查看 AngularJS $interval 的文档了解有关 $interval 处理的更多信息。

var myInterval = null;

$scope.onClickTab = function(x,tkid, sid, $event){

//cancel current interval
if (myInterval !== null) {
$interval.cancel(myInterval);
}

myInterval = $interval(function() {
$http.jsonp(ServiceDomainSite + 'myApiTokenId=' + tkid +
',SessionId=' + sid +
',ChatMessageCount=' + 0 +
',retrytimes=' + 10 +
',delayms=' + 100 + '?callback=JSON_CALLBACK&t='
+ new Date().getTime()).success(function (data) {
var resultObject = angular.fromJson(data.Rows);
$scope.Chats = resultObject;
});
}, 1000);
};

关于javascript - 使用 $interval 在 AngularJS 中每秒触发一个 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42558513/

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