Рубрики
Без рубрики

Введение в JavaScript Queuemicrotask

ВВЕДЕНИЕКЕЕМИМЕМРОТСКАК – это новый API браузера, который можно использовать для преобразования вашего синхронного кода в Async: Queuemicrotask ((() => {Consoe.log («Эй, я выполняю асихронно по кентуэмимиимической конструкции»);}); это похоже на то, что мы делали Используя Settimeout: Settimeout (() => {console.log («Эй, я казнил асихронно от settimeout»);}, 0); так

Автор оригинала: Ujjwal Gupta.

Вступление

КВУГЕЙМРОТАКА Это новый браузер API, который можно использовать для преобразования вашего синхронного кода в Async:

queueMicrotask(() => {
    console.log('hey i am executed asychronously by queueMicrotask');
});

Это похоже на то, что мы делаем с использованием Settimeout:

setTimeout(() => {
    console.log('hey i am executed asychronously by setTimeout');
}, 0);

Так что же использование КВУГЕЙМРОТАКА Когда у нас уже есть Сетримс ?

В основном задачи КВУГЕЙМРОТАКА выполняются сразу после того, как текущая CallStack пуст, прежде чем передавать выполнение на петлю события.

Так что, если мы выполним сентиментальный Сначала и тогда КВУГЕЙМРОТАКА , который будет называться первым? Выполнить код ниже и проверить себя:

setTimeout(() => {
    console.log('hey i am executed asychronously by setTimeout');
},0);

queueMicrotask(() => {
    console.log('hey i am executed asychronously by queueMicrotask');
}); 

Node.js делает то же самое с «Process.NextTick».

Когда его использовать

Нет правила для того, чтобы использовать Queuemicrotask, Но его можно использовать ловко, чтобы запустить кусок кода, не останавливая текущее выполнение.

Например, скажем, у нас есть массив, где мы поддерживаем список значений. После того, как каждое значение вставлено, мы сортируем массив, чтобы поиск значений быстрее.

var arr=[];

function add(value){
  arr.push(value);
  arr.sort();
}

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

Вот как мы можем использовать КВУГЕЙМРОТАКА Чтобы улучшить наш код:

var arr = [];

function add(value) {
  arr.push(value);
  queueMicrotask(() => {
    arr.sort();
  })
}

использованная литература

Оригинал: “https://www.freecodecamp.org/news/queuemicrotask/”