Встречается на собеседованиях • сегодня

Как задачи проходят путь до вызова в Event Loop

Вот как задачи попадают в Event Loop и выполняются:

  1. Синхронный код выполняется сразу, блокируя основной поток.

  2. Асинхронные операции (setTimeout, fetch и т.д.) передаются Web API браузера, который их обрабатывает.

  3. После завершения асинхронной операции callback помещается в очередь задач (Task Queue для макрозадач или Microtask Queue для микрозадач).

  1. Event Loop постоянно проверяет:

    • Завершился ли основной поток
    • Есть ли задачи в Microtask Queue (промисы, MutationObserver)
    • Есть ли задачи в Task Queue (setTimeout, события)
  2. Сначала выполняются все микрозадачи, затем одна макрозадача, затем снова микрозадачи и т.д.

Пример:

javascript
console.log('Start'); // Синхронно

setTimeout(() => console.log('Timeout'), 0); // Макрозадача

Promise.resolve().then(() => console.log('Promise')); // Микрозадача

console.log('End'); // Синхронно

Вывод:

text
Start
End
Promise
Timeout
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы