js事件循環機制(event loop)之宏任務/微任務


 

 

微任務和宏任務屬於一個隊列,主要區別在於它們的執行順序(宏任務執行完如果有可執行的微任務則執行完微任務才會繼續執行下一個宏任務)

 

宏任務:包括整體代碼script,,setInterval,setImmediate。

微任務:原生Promise(有些實現的promise將then方法放到了宏任務中)、process.nextTick、MutationObserver

例如:

  <script>
    console.log(222)
    Promise.resolve().then(() => {
      console.log(11)
    })
    console.log(444)
  </script>
  <script>
    console.log(333)
  </script>

打印結果是:

 

 解釋:首先script是一個宏任務,兩個script標簽是兩個宏任務,按照事件循環的規則執行順序  第一個宏任務執行完成(222,444)==》執行存在的微任務(11)==》執行第二個宏任務(333)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM