Встречается на собеседованиях • сегодня
Как задачи проходят путь до вызова в Event Loop
Вот как задачи попадают в Event Loop и выполняются:
-
Синхронный код выполняется сразу, блокируя основной поток.
-
Асинхронные операции (setTimeout, fetch и т.д.) передаются Web API браузера, который их обрабатывает.
-
После завершения асинхронной операции callback помещается в очередь задач (Task Queue для макрозадач или Microtask Queue для микрозадач).
-
Event Loop постоянно проверяет:
- Завершился ли основной поток
- Есть ли задачи в Microtask Queue (промисы, MutationObserver)
- Есть ли задачи в Task Queue (setTimeout, события)
-
Сначала выполняются все микрозадачи, затем одна макрозадача, затем снова микрозадачи и т.д.
Пример:
javascript
console.log('Start'); // Синхронно
setTimeout(() => console.log('Timeout'), 0); // Макрозадача
Promise.resolve().then(() => console.log('Promise')); // Микрозадача
console.log('End'); // СинхронноВывод:
text
Start
End
Promise
Timeout
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы