1. **執行的順序
同步任務先執行,等同步任務執行完畢(非同步等待主線扔去清空),主線任務清空之後,進入任務佇列,開始從任務佇列進入到主線程。
2.同步**和非同步**的執行書序
同步**是從上往下依次執行。非同步**的執行需要根據情況而定,因為在事件迴圈中,又將**分為巨集任務和微任務。
3.巨集任務和微任務
在現實生活中,我們去銀行辦理業務的情況下,需要先去排號,然後等叫到號的時候去辦理業務。其中在你排號的過程叫做巨集任務,叫到你之後,去辦理業務的過程叫做微任務。
4. 巨集任務和微任務指定的順序
5 . 非同步裡面的巨集任務和微任務
巨集任務就是:定時器 script
微任務就是.then
6. 舉例
(1)new promise((resolve) => ).then(() => )
console.log('外部console'); //執行結果是 promise 外部promise then
js事件迴圈 事件輪詢 event loop
總結了網上的一些有關event loop的資料 雖然負責解釋和執行js 的執行緒只有1個,但是瀏覽器內部還有其他執行緒來專門負責非同步任務的,比如定時器,ui,事件,網路等專門執行緒來負責相關任何的處理。step1 主線程讀取js 此時為同步環境,形成相應的堆和執行棧 step2 主線程遇到非同步任...
JS 事件迴圈機制(Event Loop)
js事件迴圈機制,最常用到的地方應該是做面試題,經常給出一段 讓你寫出console.log 順序,很傷腦經,死記題目過不久又忘了。了解js事件迴圈機制之後,可以很輕鬆的解決這類題目。js是單執行緒模式,但是又經常聽到 非同步 多執行緒 的概念,js中的 非同步 多執行緒 由事件迴圈機制現的 事件迴...
js 事件迴圈機制 EventLoop
js 的非阻塞i o 就是由事件迴圈機制實現的 眾所周知 js是單執行緒的 也就是上乙個任務完成後才能開始新的任務 那js碰到ajxa和定時器 promise這些非同步任務怎麼辦那?這時候就出現了事件佇列。js的主要執行棧 稱為主棧 用ajax舉例 執行的時候如果遇到ajax怎麼辦,ajax事件的實...