我理解使用setTimeout
和setInterval
延迟方法的启动,但我遇到了一个问题。我想让三个 cpu 玩家(在纸牌游戏中)“轮流”。他们应该轮到他们,然后在下一个开始之前有 500 毫秒。这是我想要构建轮流的代码(目前,这是没有人的,所以我希望它连续运行):
var whoseTurn = 0;
while (true) {
setTimeout(takeTurn(players[whoseTurn]), 500);
whoseTurn = (whoseTurn + 1) % 3;
}
在一个单独的函数中:
function takeTurn(player) {
//Now taking a turn
}
问题是,在setTimeout
被调用之后,我在第一个函数中的代码继续运行,使得延迟几乎毫无用处。