queueMicrotask() 全域性函式

注意:此功能在 Web Workers 中可用。

queueMicrotask() 方法在 WindowWorker 介面上公開,它將一個微任務排隊,以便在控制權返回到瀏覽器的事件迴圈之前安全地執行。

微任務是一個簡短的函式,它將在當前任務完成其工作後執行,並且在瀏覽器事件迴圈恢復執行上下文控制權之前沒有其他程式碼等待執行。

這可以讓您的程式碼在不干擾任何其他可能優先順序更高的待處理程式碼的情況下執行,但在瀏覽器重新獲得執行上下文控制權之前執行,可能依賴於您需要完成的工作。您可以在我們的 微任務指南 中瞭解更多關於如何使用微任務以及為什麼要選擇使用微任務的資訊。

微任務的重要性在於它能夠非同步地以特定順序執行任務。有關更多詳細資訊,請參見 使用 queueMicrotask() 在 JavaScript 中使用微任務

微任務對於需要執行最終清理或其他渲染前任務的庫和框架特別有用。

語法

js
queueMicrotask(() => {/* ... */})

引數

function

當瀏覽器引擎確定安全呼叫您的程式碼時要執行的 函式。排隊的微任務在所有掛起的任務完成後執行,但在將控制權讓給瀏覽器的事件迴圈之前執行。

返回值

無 (undefined).

示例

js
queueMicrotask(() => {
  // function contents here
});

摘自 queueMicrotask 規範

js
MyElement.prototype.loadData = function (url) {
  if (this._cache[url]) {
    queueMicrotask(() => {
      this._setData(this._cache[url]);
      this.dispatchEvent(new Event("load"));
    });
  } else {
    fetch(url)
      .then((res) => res.arrayBuffer())
      .then((data) => {
        this._cache[url] = data;
        this._setData(data);
        this.dispatchEvent(new Event("load"));
      });
  }
};

規範

規範
HTML 標準
# microtask-queuing

瀏覽器相容性

BCD 表格僅在瀏覽器中載入

另請參閱