gpt4 book ai didi

javascript - 无法停止nodejs中的递归settimeout函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:03 26 4
gpt4 key购买 nike

我做了这个递归设置超时函数来发送每个游戏房间的时间,但是当时间结束时我无法停止该函数。我尝试了清除超时,但没有帮助,所以如果有人能帮助我。

setTimeout(function GameTime() {
io.in(Rooms[picked].name).emit('PlayTime', timeleft);
timeleft.x--; // HERE WHERE I DECREMENT THE TIME
setTimeout(GameTime, 1000)
}, 1000)

最佳答案

假设您不停止循环,则必须使用函数 clearTimeout 来停止它。

适合您场景的更好方法是使用函数 setInterval:

var x = 3;
var intervalId = setInterval(function GameTime() {
//io.in(Rooms[picked].name).emit('PlayTime', timeleft);
//timeleft.x--; // HERE WHERE I DECREMENT THE TIME
x--;
if (x < 0) {
clearInterval(intervalId);
console.log('finished!');
return;
}

console.log('looping!');
}, 1000)

关于javascript - 无法停止nodejs中的递归settimeout函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670490/

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