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

Как запустится setTimeout с задержкой в 1 секунду в Event Loop если 1 секунда еще не прошла

setTimeout добавляет колбэк в очередь макрозадач после указанной задержки. Если 1 секунда еще не прошла, колбэк не выполнится - он будет ждать в очереди до завершения текущего стека вызовов и выполнения всех микрозадач (например, промисов).

Пример:

js
console.log('Start');
setTimeout(() => console.log('Timeout'), 1000);
while (new Date().getTime() < start + 2000) {} // блокирующий код на 2 секунды
console.log('End');

Вывод:

text
Start
End
Timeout

Даже если задержка 1 секунда, колбэк выполнится только после завершения блокирующего кода (~2 секунды). Event Loop не может прервать текущий синхронный код.

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

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

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

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