更新時間:2021-08-30 11:34:27 來源:動力節點 瀏覽1189次
該事件循環的背后是JavaScript的異步編程的秘密。JS在單個線程上執行所有操作,但是使用了一些智能數據結構,它給我們帶來了多線程的錯覺。讓我們來看看后端發生了什么。
該調用堆棧是負責維持行所有的操作軌跡被執行。每當一個函數完成時,它就會從堆棧中彈出。
該事件隊列負責發送新的功能賽道進行處理。它遵循隊列數據結構來維護正確的順序,所有操作都應該以正確的順序發送執行。
每當調用異步函數時,它都會被發送到瀏覽器 API。這些是內置于瀏覽器中的 API。根據從調用堆棧接收到的命令,API 開始自己的單線程操作。
這方面的一個例子是setTimeout方法。當setTimeout堆棧中的操作被處理時,它會被發送到相應的 API,該 API 會等待指定的時間將該操作發送回進行處理。
它將操作發送到哪里?該事件隊列。因此,我們有一個循環系統用于在 JavaScript 中運行異步操作。該語言本身是單線程的,但瀏覽器 API 充當單獨的線程。
事件循環促進了這個過程;它不斷檢查調用堆棧是否為空。如果為空,則從事件隊列中添加新函數。如果不是,則處理當前函數調用。
以上就是動力節點小編介紹的"JavaScript事件循環詳解",希望對大家有幫助,想了解更多可查看JavaScript教程。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習