
queueMicrotask() - браузерное API, которое выполняет переданный код асинхронно.
✓ Принимает функцию, которая будет передана в очередь микрозадач;
✓ Возвращает
Так в чем же принципиальная разница с setTimeout()?
queueMicrotask() добавляет переданную функцию в очередь микрозадач. Функции в этой очереди выполняются одна за другой — когда текущая функция выполнилась, запускается следующая функция в очереди.
Все микрозадачи в очереди будут выполнены только после того, как текущий стек вызовов окажется пустым, но перед выполнением следующей макрозадачей.
Если вернуться к сравнению с setTimeout(), то передаваемые в него функции этого относятся к макрозадачам. Каждая из них будет взята из очереди задач, после того как управление передастся циклу событий.
Поэтому, если вызвать queueMicrotask() после setTimeout(), или наоборот — функция, переданная в queueMicrotask(), начнёт своё исполнение первой.
✓ Принимает функцию, которая будет передана в очередь микрозадач;
✓ Возвращает
undefined
.Так в чем же принципиальная разница с setTimeout()?
queueMicrotask() добавляет переданную функцию в очередь микрозадач. Функции в этой очереди выполняются одна за другой — когда текущая функция выполнилась, запускается следующая функция в очереди.
Все микрозадачи в очереди будут выполнены только после того, как текущий стек вызовов окажется пустым, но перед выполнением следующей макрозадачей.
Если вернуться к сравнению с setTimeout(), то передаваемые в него функции этого относятся к макрозадачам. Каждая из них будет взята из очереди задач, после того как управление передастся циклу событий.
Поэтому, если вызвать queueMicrotask() после setTimeout(), или наоборот — функция, переданная в queueMicrotask(), начнёт своё исполнение первой.