当JavaScript的消息队列变为空时,如何通知它->;非空?

当JavaScript的消息队列变为空时,如何通知它->;非空?,javascript,concurrency,Javascript,Concurrency,解释JavaScript事件循环看起来像 while(queue.waitForMessage()){ queue.processNextMessage(); } 我想知道的是WaitFormMessage()函数是如何工作的。据我所知,JavaScript是非阻塞的,所以它的工作方式不像是阻塞,而另一个线程会唤醒它?那么JavaScript是如何知道何时从空状态“取消等待”的呢?您所引用的文章仅将这段代码作为一个示例。这就是被称为“JavaScript事件循环”的结构在概念上的外观,但实

解释JavaScript事件循环看起来像

while(queue.waitForMessage()){
  queue.processNextMessage();
}

我想知道的是WaitFormMessage()函数是如何工作的。据我所知,JavaScript是非阻塞的,所以它的工作方式不像是阻塞,而另一个线程会唤醒它?那么JavaScript是如何知道何时从空状态“取消等待”的呢?

您所引用的文章仅将这段代码作为一个示例。这就是被称为“JavaScript事件循环”的结构在概念上的外观,但实际上,细节通常要复杂得多,并且取决于JavaScript实现代码的运行时环境。我不是JavaScript运行时内部专家,但我愿意打赌,任何实际实现中的代码结构看起来都不太像


在web浏览器中,浏览器的内部“框架”代码可能会提供一个注册点,该点与JavaScript事件处理程序注册大致类似。对于Node.js之类的东西,运行时处理的是操作系统I/O原语(等)。

它不是真正的代码,在javascript中无法工作。@zerkms-yes;我知道MDN文章作者是从哪里得到这个术语的,但这很不幸。我来编辑。