可能重复:
Sleep in Javascript
Is there some way to introduce a delay in javascript?
how to make a sleep in javascript?
似乎没有提供sleep()函数,我们可以制作一个吗?
答案 0 :(得分:4)
JavaScript没有指定任何与线程相关的功能,当它嵌入到Web浏览器中时,它不支持线程(尽管HTML5工作者有点像线程。)
建议不要在浏览器中阻止主线程,因为该页面似乎没有响应用户输入。
如果您只想延迟执行其余程序,请使用setTimeout
。如果你有这个功能:
function f() {
// do some stuff
sleep(1000);
// more stuff
}
将其分为两部分。第二部分继续setTimeout
:
function f() {
// do some stuff
setTimeout(g, 1000);
}
function g() {
// more stuff
}
唯一需要注意的是,如果您将事件处理程序连接起来,如果用户在f
和g
运行时间之间与页面进行交互,则可能会触发它们。
答案 1 :(得分:0)
Javascript是同步的,除了chrome之外,所有浏览器都有一个执行线程我相信。简而言之,没有,它不支持多线程。您可以使用setTimeout
生成sleep()
类似的功能。例如,这将每5秒脉冲一次,你可以调用另一个函数继续等等。
function test() {
alert("interval");
setTimeout(test, 5000);
}