在JavaScript中如何在循环中添加延迟

时间:2013-07-14 22:03:12

标签: javascript loops time delay

在JavaScript中如何为JavaScript循环添加延迟 在下面的代码中

snakeclass.prototype.start = function() {
    while(1){
        if(this.collision()){
            console.log("game over");
            break;
        }

        this.movesnake();

        // delay here by 300 miliseconds
    }
};

我如何在这里使用Set Timeout功能;

1 个答案:

答案 0 :(得分:5)

这不起作用。如果你这样做,你的浏览器就会冻结:

while (1) {}

但您可以使用setInterval。

snakeclass.prototype.start = function() {
    var interval;
    var doo = function () {
        if(this.collision()){
            console.log("game over");
            clearInterval(interval);
        }
        this.movesnake();
    }.bind(this); // bind this so it can be accessed again inside the function
    doo();
    timeout = setInterval(doo, 300);
};