This question already has answers here:
What is the JavaScript version of sleep()?
(74个答案)
两年前关闭。
我想知道是否有办法在JavaScript中创建一个setTimeout(或一些等效的),在时间结束之前不会移动到下一行。例如,是否有方法使下面的代码按预期工作?
var cntr = 0;

while(cntr < 25) {
    setTimeout(200); //wait 200ms to continue to next line
    console.log(cntr); //or some other task
    cntr++;
}

提前感谢你给我的任何答复!

最佳答案

setTimeout永远不能是同步的。但是你可以使用递归来实现你想要的-

var cntr = 0

function printCounter() {
  console.log(cntr)
  cntr++
  if(cntr < 25) {
    setTimeout(printCounter, 200)
  }
}

setTimeout(printCounter, 200)

关于javascript - 有没有办法让setTimeout同步? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44089970/

10-11 03:04