睡眠,循环,或者Javascript中的内容

Sleep, Loop, or What in Javascript?

本文关键字:Javascript 循环 或者 睡眠      更新时间:2023-09-26

我有一个游戏循环,基本上是这样的:function game(){init();setInterval(draw, 30);}但是当玩家获胜时,我想调用Win()清除间隔并重新启动。在javascript中解决这个问题的最佳方法是什么?由于setInterval()是异步的,我此时已经退出game()了。那么我是否要添加一个繁忙循环:function game(){while(1){init();setInterval(draw, 30);while(!Win);}}?目前没有好办法sleep()吗?有没有办法在不制作任意大小的调用堆栈的情况下调用Win()内部的game()?处理这种情况的最佳方法是什么?

您可以使用命名间隔:

var time;
function game(){
     init();
     time = setInterval(function (){
          draw();
     }, 30);
}
win(){
    if(time){
        clearInterval(time); // clear the interval
        game(); // start the game again.
    }
}

现在,每当用户获胜并开始游戏时,您都必须调用此win函数。