# JS中的異步任務有哪些
異步任務指的是,不進入主線程、而進入"任務隊列"(task queue)的任務,只有等主線程任務執行完畢,"任務隊列"開始通知主線程,請求執行任務,該任務才會進入主線程執行。
分為了以下兩種
宏任務
* 宏任務就是將當前任務放在下一個任務列最頂部
微任務
* 微任務會將當前任務放入下一個任務列的底部
主要的異步任務有
* Events:javascript各種事件的執行都是異步任務
* setTimeout、setInterval 定時器 特別的如果將setTimeout()的第二個參數設為0,就表示當前代碼執行完(執行棧清空)以后,立即執行(0毫秒間隔)指定的回調函
* queueMicrotask 執行微任務
* XMLHttpRequest(也就是 Ajax)
* requestAnimationFrame 類似于定時器,但是是以每一幀為單位
* fetch Fetch API 提供了一個 JavaScript 接口,用于訪問和操縱 HTTP 管道的一些具體部分
* MutationObserver 創建并返回一個新的 MutationObserver 它會在指定的DOM發生變化時被調用。
* Promise
* async function