这是我正在使用的代码。当ticks等于5时,递归函数应该停止清除mainThread超时。有人请帮忙。
var mainThread;
var ticks = 0;
function tickTimer() {
clearTimeout(mainThread);
if (ticks >= 5) {
endGame();
}
else {
mainThread = setTimeout(function () {
ticks++;
tickTimer();
}, 1000);
}
}
如果有任何疑虑,请告诉我。 提前谢谢。
答案 0 :(得分:3)
请改为尝试:
function tickTimer() {
if (++ticks >= 5) {
clearInterval (mainThread);
endGame();
}
}
var mainThread = setInterval(tickTimer, 1000);
var ticks = 0;
答案 1 :(得分:1)
你宣布mainThread
了吗?喜欢这个
var mainThread = null;
function tickTimer() {
clearTimeout(mainThread);
mainThread = null;
if (ticks >= 5) {
endGame();
}
else {
mainThread = setTimeout(function () {
ticks++;
tickTimer();
}, 1000);
}
}
而ticks++
不是ticks--
答案 2 :(得分:1)
请尝试将ticks--
替换为ticks++
答案 3 :(得分:1)
you can try this. all you need to do is clear interval every time tickTimer function is called.
var mainThread = setInterval(tickTimer, 1000);
var ticks = 0;
function tickTimer() {
if (++ticks >= 5) {
clearInterval (mainThread);
endGame();
}
}
答案 4 :(得分:0)
我认为只需将您的计时器作为参数发送
function tickTimer(timer) {
timer && clearTimeout(timer);
if (ticks >= 5) {
endGame();
}
else {
var timer = setTimeout(function () {
ticks--;
tickTimer(timer);
}, 1000);
}
}
不要使用全局范围)))
答案 5 :(得分:0)
我认为你应该在触发函数时初始化变量滴答。