Spec-Zone.ru › Web APIs

Метод Window: queueMicrotask()

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

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

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

Важность микрозадач заключается в возможности выполнения задач асинхронно, но в определенном порядке. Подробнее см. Использование микрозадач в 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 for Android Opera Android Safari на iOS Samsung Internet WebView Android
queueMicrotask 71 79 69 58 12.1 71 79 50 12.2 10.0 71

См. также

  • WorkerGlobalScope.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/Window/queueMicrotask

Spec-Zone.ru

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