gpt4 book ai didi

javascript - 打破 setTimeout 循环

转载 作者:IT老高 更新时间:2023-10-28 23:09:11 26 4
gpt4 key购买 nike

我在打破 setTimeout 循环时遇到了一些麻烦。

for (var i = 0; i < 75; i++) {
setTimeout(function (i) {
return function () {
console.log("turn no. " + i);
if (table.game.playerWon) {
console.log('Player won');
// I want to stop the loop now
// i = 75; didn't work
}
};
}(i), 100 * i);
}

我已经阅读了大约 100 篇与 setTimeout 相关的帖子,但无法弄清楚这一点。

编辑:

让我在尝试完成时澄清一下。

我的游戏有 75 回合,每回合大约需要 500 毫秒,在那个回合中我想检查是否满足条件并宣布玩家获胜,玩家获胜后无需继续其余的转。

最佳答案

不要设置所有这些计时器,而是使用 setInterval 创建一个连续计时器:

var counter = 0;

var timer = setInterval(function () {

console.log("turn no. " + counter);

if (table.game.playerWon) {
console.log('Player won');
}

if (counter >= 75 || table.game.playerWon) {
clearInterval(timer);
}

counter++;

}, 100);

如果轮到你需要 500 毫秒,请将最后一个 100 更改为 500

关于javascript - 打破 setTimeout 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21240865/

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