javascript - Javascript clearTimeout 帮助请
问题描述
大家好,这是我的代码:
var stopKick;
let timerID = setInterval(function() {
// function kicked() { setTimeout( room.kickPlayer(player.id , " Lütfen hesabını onayla -> [ public.haxlife.com ] " , false) , 30000 ); clearInterval(timerID); }
$.ajax({
url: 'http://localhost/BOT/publicBOT/kesinOnay.php',
type: 'POST',
data: {
nickname: nick
},
success: function(data) { // Kicklenme sorununda kaldın!
console.log(data);
if (data == 'dogrulanmamis') {
stopKick = setTimeout(function() {
console.log("denem")
}, 30000)
} else {
clearTimeout(stopKick);
room.sendChat("Profilin Eşleşti İyi Oyunlar , " + player.name, player.id);
clearInterval(timerID);
}
},
error: function() {
console.log("eslesmede hataa");
}
});
}, 3000);
但是这个 clearTimeout 不起作用
解决方案
问题是每次发生 AJAX 调用并且data == 'dogrulanmamis'
是真的时,您都会创建一个新的计时器。当条件为假时,您只取消最后一个。
您应该只启动一次计时器,或者在启动新计时器之前取消旧计时器。这是第一种方法。
var stopKick;
let timerID = setInterval(function() {
$.ajax({
url: 'http://localhost/BOT/publicBOT/kesinOnay.php',
type: 'POST',
data: {
nickname: nick
},
success: function(data) { // Kicklenme sorununda kaldın!
console.log(data);
if (data == 'dogrulanmamis') {
if (!stopKick) {
stopKick = setTimeout(function() {
console.log("denem")
}, 30000);
}
} else {
clearTimeout(stopKick);
room.sendChat("Profilin Eşleşti İyi Oyunlar , " + player.name, player.id);
clearInterval(timerID);
}
},
error: function() {
console.log("eslesmede hataa");
}
});
}, 3000);
推荐阅读
- python - adb 屏幕流式传输到 python + opencv
- nginx - nginx 使用模块编译
- python - SyntaxError:非默认参数遵循python中的默认参数
- javascript - 防止按下特定链接/按钮时关闭下拉菜单
- momentjs - 使用 moment.js 验证时间
- python - 如何创建命令并将其添加到 python 存储库中的路径
- android - 我们可以单击自定义列表视图项目并在 App Widget 上执行不同的操作吗
- node.js - BadRequestError: checks.state 参数丢失
- c++ - 二叉树中的递归搜索
- python - Pygame在进行计算时没有响应