我一直在阅读关于javascript的单线程执行模型,我现在明白,javascript执行线程会查看浏览器事件队列中的事件/回调,以便在它完成处理其调用堆栈上的所有内容时进行处理。我感到困惑的是事件实际放在这个队列中的确切机制。
引用MDN:
在网络浏览器中,只要事件发生并且附加了事件监听器,就会添加消息。如果没有监听器,则该事件将丢失。因此,单击带有单击事件处理程序的元素将添加消息 - 与任何其他事件一样。
我无法在任何地方找到这些消息如何添加到队列的明确解释。它是主要的执行线程吗(如果是这样,它实际上在什么时候添加它们)?如果没有,浏览器在这些场景后面做什么来填充队列?如果有人能够阐明这一点,我将非常感激。
提前致谢。