我试图理解Javascript的执行优先级。我有一个代码,计时器在 15 秒后运行以回调函数。但是,事件可能会在此之前发生,并且可能会调用偶数处理程序函数。
- 如果在为事件提供服务时计时器关闭,会发生什么情况?
- JS是否中断事件并为计时器提供服务并返回到事件?来自 ejohn关于 JavaScript Timer 如何工作的博客,这可能不是发生的事情。
- 如果计时器在服务偶数时关闭并且事件处理程序执行
clearTimeout(theTimerThatJustWentOff)
,会发生什么情况?定时服务例程是否会在退出事件处理程序后运行? - 这些行为在不同浏览器之间会有多大差异?
我不是在问在两个异步事件的竞争条件下会发生什么。就我而言,一个已经发生并正在维修,而第二个发生了。
Javascript 运行单线程。这应该可以回答你的问题。所以
- 计时器在运行时不会关闭。当您的函数完成或生成时(例如,通过使用 setTimeout 执行延续(,您的触发器将再次运行。
- 不。
- 否 - 见 1。
- 应该不会改变。