나는 방법의 시작을 지연시키기 위해 setTimeout
과 setInterval
을 사용하는 것을 이해하지만 문제가 생겼습니다. 나는 카드 게임에서 3 명의 cpu 플레이어를 "회전"시키고 싶다. 그들은 자신의 차례를 거쳐 다음 단계로 넘어 가기 전에 500ms를 가져야합니다.메서드 실행 사이의 시간 대기
var whoseTurn = 0;
while (true) {
setTimeout(takeTurn(players[whoseTurn]), 500);
whoseTurn = (whoseTurn + 1) % 3;
}
을 별도의 함수에서 :
function takeTurn(player) {
//Now taking a turn
}
문제 여기에 내가 (나는 그것을 지속적으로 실행할 수 있도록이 인간 않고, 지금이다) 턴 복용을 구성 할 코드는 즉, setTimeout
이 호출 된 후 첫 번째 함수의 코드가 계속 실행되어 지연이 사실상 쓸모 없게됩니다.
불행히도 그것은 작동하지 않습니다. 타임 아웃은 비동기식이며 루프는 어쨌든 끝나지 만, 당신의 경우에는 결코 끝나지 않습니다. 결국 브라우저가 멈 춥니 다. – adeneo