2016-11-23 45 views
1

This article解釋說,JavaScript事件循環看起來像當消息隊列變空時,JavaScript如何獲得通知 - >非空?

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

什麼我不知道是waitForMessage()函數是如何工作的。從我的理解來看,JavaScript是非阻塞的,因此它不能像阻塞和另一個線程將它喚醒一樣工作?那麼,JavaScript如何知道什麼時候從空閒狀態「解脫」?

+1

這不是真正的代碼,並不會在JavaScript中工作。 – zerkms

回答

1

您參考的文章僅將代碼塊作爲示例呈現。這就是結構稱爲「JavaScript事件循環」在概念上看起來像,但實際上細節通常要複雜得多,並且依賴於JavaScript實現代碼的運行時環境。我不是JavaScript運行時內部專家,但我敢打賭,任何真正的實現中的代碼結構看起來都不像。

在網絡瀏覽器中,瀏覽器的內部「框架」代碼可能會提供一個類似於JavaScript事件處理程序註冊的註冊點。對於像Node.js這樣的東西,運行時正在處理操作系統I/O原語(等)。

+0

@zerkms是;我瞭解MDN文章作者在哪裏獲得該術語,但這很不幸。我會編輯。 – Pointy

相關問題