什么是睡眠()的JavaScript版本?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (85)

有没有比使用下面的pausecomp函数(从这里获取)更好的方法来在JavaScript中设计睡眠?

function pausecomp(millis)
{
    var date = new Date();
    var curDate = null;
    do { curDate = new Date(); }
    while(curDate-date < millis);
}
提问于
用户回答回答于

在JavaScript中,我重写了每个函数,以便它能够尽快结束。你希望重新控制浏览器,这样它就可以对DOM进行更改。

每次我想要在我的功能中睡觉时,我都会重构为使用setTimeout().

在任何语言中, 一些人会说,应该总是有一个信号或回调来启动某一特定功能,另一些人则会辩称,有时任意的延迟时刻是有用的。我说,在这一行业里,每个人都有自己的规则,一条规则永远不能支配任何事情。

// sleep time expects milliseconds
function sleep (time) {
  return new Promise((resolve) => setTimeout(resolve, time));
}

// Usage!
sleep(500).then(() => {
    // Do something after the sleep!
});
用户回答回答于

在Firebug(&可能是其他js控制台)中,只有在指定的睡眠时间(.)之后,才会在按回车之后起作用。

function sleepFor( sleepDuration ){
    var now = new Date().getTime();
    while(new Date().getTime() < now + sleepDuration){ /* do nothing */ } 
}

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励