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

Как может асинхронный код выполняться параллельно с синхронным

В JavaScript асинхронный код выполняется параллельно с синхронным благодаря Event Loop. Синхронный код выполняется в основном потоке, а асинхронные операции (setTimeout, промисы, fetch) делегируются Web API и возвращаются в Callback Queue, когда готовы. Event Loop проверяет, когда Call Stack пуст, и помещает колбэки из очереди в стек для выполнения.

Пример:

javascript
console.log('Старт'); // синхронный

setTimeout(() => {
  console.log('Таймаут'); // асинхронный
}, 0);

console.log('Конец'); // синхронный

Вывод:

text
Старт
Конец
Таймаут

Даже с нулевой задержкой setTimeout выполнится после синхронного кода, так как колбэк попадает в очередь и ждет завершения основного потока.

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

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

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

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