2 秒后离开一个循环

Rez*_*ati 3 javascript

我想在 while 循环中重复文本 2 秒。如何在 2 秒后打破循环?

这是我迄今为止尝试过但不起作用的方法:

var repeat = true;
setTimeout(function() { var repeat = false }, 2000)
while(repeat) {
    console.log("Let's repeat for 2 seconds...");
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*lms 6

除了其他答案之外,您可以只检查时间:

 const start = +new Date;

  while(+new Date < start + 2000) {
     console.log("Let's repeat for 2 seconds...");
 }
Run Code Online (Sandbox Code Playgroud)


Iva*_*var 5

JavaScript 是单线程的。这意味着只要您的循环运行,您的超时就永远不会被触发。

根据您想要什么以及是否要锁定浏览器(通过使用实际的无限循环),您可以将setInterval用作循环,并setTimeout在 2 秒后使用停止间隔。

console.log("Starting loop");

var interval = setInterval(function () {
    console.log("Let's repeat for 2 seconds...");
}, 0);

setTimeout(function() {
    clearInterval(interval);
    console.log("Finished loop");
}, 2000);
Run Code Online (Sandbox Code Playgroud)