在for循环Javascript中设置Interval

时间:2016-11-29 13:43:58

标签: javascript setinterval

我的代码会立即向所有玩家发卡,然后在再次交易之前有一段时间。我想给每个玩家发3张牌,每次发牌1张。

function dealPlayers() {

  var counter = 1;

  var timer = setInterval(function () {

    for (var i = 0; i < gameDB.plySeatArray.length; i++) {

      gameDB.plySeatArray[i].addCard(getNextCard(), false);

    };

    if (counter >= 3) {
      clearInterval(timer);
    }

    counter++;

  }, 1000);

}

1 个答案:

答案 0 :(得分:1)

你真的不想要间隔,你想要一个不断等待并交易给下一个玩家的递归函数。

function dealCard(playerIndex) {
    gameDB.plySeatArray[playerIndex].addCard(getNextCard(), false);
    if ((playerIndex + 1) == gameDB.plySeatArray.length) {
        //end of the queue, reset to the first player
        playerIndex = 0;
    } else {
        playerIndex++;
    }

    //Check the next playerIndex's card
    if (/*playerIndex doesnt have 3 cards, deal him in in a second*/) {
        setTimeout(function() {
            dealCard(playerIndex);
        }, 1000);
    }
}

dealCard(0);