我正在尝试跳出一个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毫秒,在回合期间,我想要检查是否满足条件并宣布玩家获胜,在玩家获胜后,没有必要继续其余的回合。
setTimeout
调用运行之前,循环已经完成了。因此,你一次性安排了75个事件,然后它们将开始触发。 - Sean VieirasetInterval
和setTimeout
之间的区别。 - Ilan Frumer