有没有sleep比以下pausecomp函数(取自此处)更好的方法来设计 JavaScript 中的 a?
sleep
pausecomp
function pausecomp(millis) { var date = new Date(); var curDate = null; do { curDate = new Date(); } while(curDate-date < millis); }
这不是JavaScript 中 Sleep 的重复 - 动作之间的延迟;我想要在函数中间真正的睡眠,而不是在一段代码执行之前的延迟。
在 JavaScript 中,我重写了每个函数,以便它能够尽快结束。您希望浏览器重新获得控制权,以便它可以更改您的 DOM。
每次我想在我的函数中间睡觉时,我都重构为使用setTimeout().
setTimeout()
任何语言中臭名昭著的睡眠或延迟功能都备受争议。有人会说应该总是有一个信号或回调来触发给定的功能,其他人会争辩说有时任意延迟时间是有用的。我说,对每个人来说,一个规则永远不能决定这个行业的任何事情。
编写一个 sleep 函数很简单,并且通过 JavaScript Promises 变得更加有用:
// sleep time expects milliseconds function sleep (time) { return new Promise((resolve) => setTimeout(resolve, time)); } // Usage! sleep(500).then(() => { // Do something after the sleep! });