在JavaScript中,Java的Thread.sleep()相当于什么?
问题
什么相当于JavaScript的JavaThread.sleep()
?
#1 热门回答(170 赞)
简单的答案是没有这样的功能。
你最接近的是:
var millisecondsToWait = 500;
setTimeout(function() {
// Whatever you want to do after the wait
}, millisecondsToWait);
请注意,你特别不想忙等待(例如在旋转循环中),因为你的浏览器几乎肯定会在单线程环境中执行你的JavaScript。
以下是一些处理JavaScript中的线程的其他SO问题:
- JavaScript和线程
- 为什么JavaScript不支持多线程?
这个问题也可能有所帮助:
- setTimeout - 如何避免使用字符串进行回调?
#2 热门回答(50 赞)
试试这个代码。我希望它对你有用。
function sleep(seconds)
{
var e = new Date().getTime() + (seconds * 1000);
while (new Date().getTime() <= e) {}
}
#3 热门回答(7 赞)
它没有直接的等价物,因为它会暂停一个网页。但是有一个asetTimeout(),例如:
function doSomething() {
thing = thing + 1;
setTimeout(doSomething, 500);
}
关闭示例(感谢Daniel):
function doSomething(val) {
thing = thing + 1;
setTimeout(function() { doSomething(val) }, 500);
}
第二个参数是触发前的毫秒,你可以将其用于时间事件或在执行操作之前等待。
**编辑:**根据更清晰结果的注释更新。