Встречается на собеседованиях • сегодня
Как браузер определяет, что асинхронный код не выполняется
Браузер использует Event Loop для мониторинга выполнения асинхронного кода. Основные этапы:
- Call Stack - выполняется синхронный код. Если стек пуст, движок проверяет очередь задач.
- Task Queue (Macrotask) - сюда попадают
setTimeout,setInterval, DOM-события и т.д. - Microtask Queue - приоритетнее макрозадач, сюда попадают
Promise,MutationObserver.
Пример:
javascript
console.log('Start');
setTimeout(() => console.log('Timeout'), 0);
Promise.resolve().then(() => console.log('Promise'));
console.log('End');Вывод:
text
Start
End
Promise
TimeoutБраузер считает код "завершенным", когда:
- Call Stack пуст
- Очереди Microtask и Macrotask пусты
- Нет ожидающих сетевых запросов или таймеров

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы