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

标签 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
    }
};

我如何在这里使用设置超时功能;

最佳答案

那是行不通的。如果您这样做,您的浏览器将会死机:

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);
};

关于javascript - 在 JavaScript 中如何在循环中添加延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17644255/

相关文章:

windows - 停止同步 windows 2008 r2 时钟

c# - 比较 Excel 工作表与文本文件

flutter - 如何将 TimePicker 格式设置为 24 小时。 "00:00" flutter

javascript - 如何在不丢失原有功能的情况下扩展 JavaScript 中的对象

javascript - D3 穿孔卡中的轴问题 - 需要数据来扩展超过轴限制

javascript - 用 arrayBuffer 录制 mp3

java - JFrame 打开空白,运行循环,然后显示组件

python - 为 Pandas 中的每个唯一值创建一个数据框

javascript - HTML jquery onclick 事件不适用于仅在 Android 手机上动态创建的链接

ruby - 仅当在模板中定义变量时 Puppet 3 循环执行