2

我试图了解 Javascript 的执行优先级。我有一个代码,其中计时器在 15 秒后运行以回调函数。但是,可能会在此之前发生事件,并且可能会调用偶数处理函数。

  1. 如果在为事件提供服务时计时器关闭会发生什么?
  2. JS 会中断事件并服务计时器并返回事件吗?从 ejohn 的关于 JavaScript 计时器如何工作的博客中,这可能不会发生。
  3. 如果在为事件提供服务并且事件处理程序执行时计时器关闭会发生什么clearTimeout(theTimerThatJustWentOff)?在我们退出事件处理程序后,定时器服务例程会运行吗?
  4. 这些行为在不同浏览器之间会有多大差异?

我不是问在两个异步事件的竞争条件下会发生什么。在我的情况下,一个已经发生并且正在被服务,而第二个发生。

4

1 回答 1

1

Javascript 运行单线程。那应该回答你的问题。所以

  1. 计时器在运行时不会关闭。当您的函数完成或产生时(例如,通过使用 setTimeout 进行延续),您的触发器将再次运行。
  2. 不。
  3. 不。- 见 1。
  4. 不应该变化。
于 2013-10-12T16:16:54.017 回答