gpt4 book ai didi

javascript - 调用 JavaScript setTimeout 未调用 10 次

转载 作者:行者123 更新时间:2023-12-03 12:45:59 28 4
gpt4 key购买 nike

我有一个 JavaScript/jQuery 代码函数,如果没有可用数据(由 Web 服务调用确定),该函数应该调用自身最多十次。我已经实现了代码,但 Web 服务调用内的日志记录表明它仅被调用 1 或 2 次。这段代码有什么错误?

 function CallIsDataReady(input) {
var timer;
var count = 0;

$.ajax({
url: "https://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
success: function (data) {
if (!data) {
setTimeout(function(inputInner) {
CallIsDataReady(inputInner);
count++;
if (count == 10) {
clearInterval(timer);
count = 0;
}
}, 1000);
} else {
console.log("data returned - returning true");
//Continue as data is ready
var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
GetDataFromServer(0, tableView.get_pageSize());
}
},
error: function (jqXHR, textStatus, errThrown) {
console.log("AJAX call failed in CallIsDataReady");
console.log(errThrown);
}
});
}

编辑:它应该尝试最多十次然后退出,而不是继续访问 GetDataFromServer。它应该返回一个错误。我怎样才能做到这一点

最佳答案

setTimeout 旨在触发函数调用一次,且仅触发一次

如果您希望此功能起作用,请从超时回调中重复调用 setTimeout:

function CallIsDataReady(input) {
var timer;
var count = 0;

function callWebService(){
console.log('calling webservice');
$.ajax({
url: "https://www.blah.com/services/TestsService.svc/IsDataReady",
type: "GET",
contentType: "application/json; charset=utf-8",
data: input,
success: function (data) {
console.log('count = ' + count);
console.log('data = ' + data);
if (!data){
if(count < 10) {
count++;
setTimeout(callWebService, 1000);
} else {
count = 0;
}
}else{
console.log("data returned - returning true");
//Continue as data is ready
var tableView = $find("<%= RadGrid1.ClientID %>").get_masterTableView();
GetDataFromServer(0, tableView.get_pageSize());
}
},
error: function (jqXHR, textStatus, errThrown) {
console.log("AJAX call failed in CallIsDataReady");
console.log(errThrown);
}
});
};

callWebService();
}

关于javascript - 调用 JavaScript setTimeout 未调用 10 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23343079/

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