Урок 5.2Урок 19 з 24
Цикл подій
Given a scenario, use event loop and event monitor or determine loop outcomes.
Головне
- 1Спершу синхронний код виконується до кінця. Ніщо його не перериває — навіть таймер, якому вже час спрацювати.
- 2Потім виконуються всі мікрозадачі з черги: реакції промісів (then, catch, finally, код після await) і queueMicrotask, разом із мікрозадачами, які вони додають.
- 3Лише після цього запускається наступна задача: таймер, подія, повідомлення. Після кожної задачі черга мікрозадач знову виконується до кінця.
- 4setTimeout(fn, 0) означає «як задача, не раніше ніж через 0 мс»: такий колбек ніколи не випереджає мікрозадачі, що вже чекають у черзі.
- 5Функція-виконавець у new Promise і тіло асинхронної функції до першого await виконуються синхронно, у момент виклику.
Що перевіряє іспит із цієї теми
Формулювання з програми іспиту (англійською).
- 5.2.K1The call stack, the task (macrotask) queue and the microtask queue
- 5.2.K2Where callbacks go: promise reactions and queueMicrotask vs setTimeout, setInterval and events
- 5.2.S1Determine the order in which a block of synchronous and asynchronous code logs
Закріпіть тему
Дайте відповідь на запитання за сценаріями з цієї теми. До кожного варіанта є розбір.
Тренування 5.2 · 12 запитань