gpt4 book ai didi

javascript - setTimeout 连续循环不等待

转载 作者:行者123 更新时间:2023-11-28 04:07:14 24 4
gpt4 key购买 nike

我正在尝试让 setTimeout 在 15 秒后重新运行它内部的函数,它不是等待 15 秒而是在一个恒定的循环中执行它。

这是我当前的代码

function checkSession(x) {
http.abort();
http.open("GET", siteURL+"processes/ajax.php?call=check_session&string="+x+"&new="+Math.random(), true);
http.onreadystatechange = function() {
if(http.readyState == 4) {
if(http.responseText == true) {
updateSession(x);
} else {
setTimeout(checkSession(x),15000);
}
}
}
http.send(null);
}

我没有发现代码本身有任何问题,唯一的错误是它只是在不断循环而不等待“15000”毫秒。

最佳答案

将 setTimeout 调用更改为:

setTimeout(function(){checkSession(x)},15000);

正如您现在所拥有的,checkSession 会立即被调用,然后作为参数传递给 setTimeout。将其包装在函数内允许延迟调用。

关于javascript - setTimeout 连续循环不等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14463372/

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