Javascript(在浏览器中) 不能 同时运行2。
最多 一个 的的
setTimeout回调可以同时执行-因为有 一个 Javascript执行上下文或“线程”。
但是,要运行的“下一个计划的超时”始终在下一个运行。“ 4”在“ 2”回调之前运行,因为它 计划更快地运行 。超时是 从
同一时间有效安排的(没有操作被阻止),但是“ 2”的间隔要长得多。
基础实现 可能 使用线程1-但是,在同一全局上下文 中的 Javascript 不会 并发运行,并保证所有回调之间的行为 一致 且 原子
。
1也许不是;可以在
select/poll实现中没有任何线程的情况下进行处理。
2在相同的上下文中:例如,Tab / Window,WebWorker,宿主浏览器控件。例如,在同时运行WebWorkers的同时,它们在 不同的
上下文中运行并遵循相同的异步模型(例如,计时器使用的模型)。



