Spec-Zone.ru › Web APIs

WorkerGlobalScope: метод queueMicrotask()

Примечание: Эта функция доступна только в Web Workers.

Метод queueMicrotask() интерфейса WorkerGlobalScope добавляет микрозадачу в очередь для выполнения в безопасное время до возвращения управления циклу событий браузера.

Микрозадача — это короткая функция, которая будет выполнена после завершения текущей задачи и отсутствия другой ожидающей кода до возвращения управления циклу событий браузера.

Это позволяет вашему коду выполняться без вмешательства в другой, потенциально более приоритетный, код, который ожидает выполнения, но до того, как браузер вновь получит управление контекстом выполнения, потенциально зависящего от завершения необходимой вам работы. Вы можете узнать больше о том, как использовать микрозадачи и почему вы можете выбрать их использование, в нашем руководстве по микрозадачам.

Важность микрозадач заключается в их способности выполнять задачи асинхронно, но в определенном порядке. Подробнее см. Использование микрозадач в JavaScript с queueMicrotask().

Микрозадачи особенно полезны для библиотек и фреймворков, которым необходимо выполнить окончательную очистку или другие задачи, выполняемые непосредственно перед рендерингом.

Синтаксис

queueMicrotask(callback)

Параметры

callback

Функция function, которая будет выполнена, когда движок браузера определит, что безопасно вызвать ваш код. Добавляемые в очередь микрозадачи выполняются после завершения всех ожидающих задач, но до передачи управления циклу событий браузера.

Возвращаемое значение

None (undefined).

Примеры

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

Взято из спецификации queueMicrotask:

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

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
queueMicrotask 71 79 69 58 12.1 71 79 50 12.2 10.0 71

См. также

  • Window.queueMicrotask()
  • Полифил queueMicrotask() в core-js
  • Использование микрозадач в JavaScript с queueMicrotask()
  • Асинхронный JavaScript
  • Объяснение queueMicrotask
  • Задачи, микрозадачи, очереди и расписания Джейка Арчибальда

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WorkerGlobalScope/queueMicrotask

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API