主javascript线程如何处理添加到浏览器事件队列的事件?

主javascript线程如何处理添加到浏览器事件队列的事件?,javascript,events,Javascript,Events,我一直在阅读javascript的单线程执行模型,现在我了解到javascript执行线程在完成其调用堆栈上的所有处理后,都会查看浏览器事件队列中要处理的事件/回调。我所困惑的是,事件实际放置到这个队列上的确切机制 引用MDN: 在web浏览器中,每当事件发生并且有一个事件侦听器连接到它时,都会添加消息。如果没有侦听器,则事件将丢失。因此,使用click事件处理程序单击一个元素将添加一条消息——与任何其他事件一样 我在任何地方都找不到关于这些消息到底是如何添加到队列中的明确解释。是主执行线程在这

我一直在阅读javascript的单线程执行模型,现在我了解到javascript执行线程在完成其调用堆栈上的所有处理后,都会查看浏览器事件队列中要处理的事件/回调。我所困惑的是,事件实际放置到这个队列上的确切机制

引用MDN:

在web浏览器中,每当事件发生并且有一个事件侦听器连接到它时,都会添加消息。如果没有侦听器,则事件将丢失。因此,使用click事件处理程序单击一个元素将添加一条消息——与任何其他事件一样

我在任何地方都找不到关于这些消息到底是如何添加到队列中的明确解释。是主执行线程在这样做吗(如果是的话,它实际上是在什么时候添加它们的)?如果不是,浏览器在这些场景后面做什么来填充队列?如果有人能说明这一点,我将非常感激


提前感谢。

不确定是否有帮助,但相关信息:事件循环的具体处理方式可能取决于实现。只要事件循环符合规范,这并不重要。您可能会发现这也很有趣,尽管它没有回答这个确切的问题-