JS高階—13—事件迴圈(瀏覽器和node)
阿新 • • 發佈:2022-05-22
一.事件迴圈:
js執行緒、瀏覽器其他執行緒、瀏覽器維護的事件佇列;
二.js單執行緒
三.瀏覽器的事件迴圈
瀏覽器其他執行緒在執行好之後,把任務放到事件佇列裡,等mainScript執行完後再把事件佇列裡的微任務、巨集任務依次取出交給js執行緒處理;
瀏覽器的事件迴圈和node的事件迴圈不太一樣,因為node裡對微任務佇列和巨集任務佇列又做了進一步的劃分;
四.瀏覽器裡的面試題;
這一道很難,主要是return 單純的4可以直接看作是resolve(4),return一個thenable介面會被加一次微任務,return Promise.resolve(4)會被加到兩次微任務;
五、node的事件迴圈
js本來是一種在瀏覽器用的指令碼語言,但是為什麼現在nodejs也可以在伺服器開發了?
首先我們知道伺服器開發的程式語言的關鍵要求之一就是可以進行硬碟的io操作,nodejs由於在核心中添加了libuv庫,所以實現了io操作;
六、node事件迴圈的階段
七、node巨集任務和微任務
微任務之間的執行順序也不同,