javascript - JavaScript 支持多线程吗?如果没有,我应该如何实现 sleep()?

标签 javascript multithreading

<分区>

Possible Duplicates:
Sleep in Javascript
Is there some way to introduce a delay in javascript?
how to make a sleep in javascript?

好像没有提供 sleep() 函数,我们可以做一个吗?

最佳答案

JavaScript 没有指定任何与线程有关的特性,当它嵌入到 Web 浏览器中时,它不支持线程(尽管 HTML5 worker 有点像线程。)

不建议在浏览器中阻塞主线程,因为页面将对用户输入无响应。

如果您只想延迟程序其余部分的执行,请使用setTimeout。如果你有这个功能:

function f() {
   // do some stuff
   sleep(1000);
   // more stuff
}

把它分成两部分。第二部分继续 setTimeout:

function f() {
  // do some stuff
  setTimeout(g, 1000);
}

function g() {
  // more stuff
}

唯一需要注意的是,如果您连接了事件处理程序,那么如果用户在时间 fg 之间与页面交互,它们可能会触发跑。

关于javascript - JavaScript 支持多线程吗?如果没有,我应该如何实现 sleep()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2241721/

相关文章:

javascript - 来自本地文件的 jQuery ajax 请求(Origin 'null' 不允许访问)

javascript - 子域是否被视为跨域?

javascript - 单击事件时提醒元素属性

Javascript:遍历数组并修改数组内的项目

python - Pytest 插件打开 GUI

c# - C# 中的线程和异步操作

javascript - XML:如何将项目(HBox/Vbox 的按钮)右对齐

java - 延迟分组网络请求

java - 线程生命周期

java - 将 Java ThreadFactory 创建的对象的所有引用置为 null 的方法