setTimeout阻塞问题

Dev*_*ate 0 javascript jquery conways-game-of-life

我在写了一篇"生命游戏" .我在一个名为的函数中完成了所有逻辑doGeneration().我可以从控制台反复调用它,一切都按计划进行,但是,如果我把它放在while循环中,执行会阻止UI,我只看到最终结果(最终).

while (existence) {
    doGeneration();
}
Run Code Online (Sandbox Code Playgroud)

如果我添加一个setTimeout(),即使是15的生成限制,浏览器实际上也会崩溃(Canary,Chrome).

while (existence) {
    setTimeout(function() {
        doGeneration();
    },100);
}
Run Code Online (Sandbox Code Playgroud)

如何在doGeneration()不阻止DOM/UI的情况下每隔一秒左右调用一次?

mcg*_*hix 5

你想要setInterval

 var intervalId = setInterval(function() {
     doGeneration();
 }, 1000);

 // call this to stop it
 clearInterval(intervalId);
Run Code Online (Sandbox Code Playgroud)