大家好,这是我的代码:
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不能工作
发布于 2020-03-05 01:43:58
问题是每次发生AJAX调用时都会创建一个新的计时器,并且data == 'dogrulanmamis'为真。当条件为false时,只取消最后一个条件。
您可以只启动一次计时器,或者在启动新计时器之前取消旧计时器。以下是第一种方法的实现方法。
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);https://stackoverflow.com/questions/60531665
复制相似问题