1. 程式人生 > >圖解js裏的事件循環---機制

圖解js裏的事件循環---機制

img 處理 另一個 事件隊列 同步 事件循環 事情 線程 jpg

理解事件循環之前先要知道何為異步同步,(事件循環看最後一句)

  同步:程序按順序連續執行

    在主線程上排隊執行任務。前一個完畢,後一個才執行 如果要等,會一直等待下去,直到收到消息再執行?。 阻塞?

  異步:程序不連續分段執行

    為了不阻塞、不浪費等待的時間

  比喻:事情可以分為前半段和後半段,同步是前半段後半段同時按順序一起完成。異步是先做前半段,後半段有時間再做。

技術分享圖片

我理解的

技術分享圖片

總結

  1棧裏會按順序執行隊列,

?  2有多個隊列:事件隊列(主)、宏隊列、微隊列

  3 異步分為:宏任務、微任務,對應宏隊列和微隊列?

  4主線程裏有:同步、異步。按順序執行,遇到異步掛起,讓後面先執行

  5 掛起的會進入另一個隊列(宏/微),等有結果在回頭執行??

  6?等有結果的意思:執行棧內的同步內容執行完畢和異步返回結果

  7執行棧完畢,先處理所有微任務隊列,再處理從宏任務隊列取出事件?

事件循環:主線程從任務隊列中讀取和執行?事件的過程,且不斷循環

圖解js裏的事件循環---機制