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

В каком порядке выведутся значения нескольких одинаковых SetTimeout

Порядок выполнения setTimeout с одинаковой задержкой зависит от порядка их объявления. Они выполнятся в том же порядке, в котором были вызваны, но с небольшой оговоркой:

javascript
setTimeout(() => console.log('First'), 0);  
setTimeout(() => console.log('Second'), 0);  
setTimeout(() => console.log('Third'), 0);  
// Вывод: First, Second, Third  

Однако, если внутри одного setTimeout выполняется долгая синхронная операция, следующий setTimeout может начать выполняться позже.

javascript
setTimeout(() => {  
  console.log('First');  
  for (let i = 0; i < 1e9; i++) {} // блокирующая операция  
}, 0);  

setTimeout(() => console.log('Second'), 0);  
// Вывод: First (с задержкой), затем Second  

В целом, порядок гарантирован, если задержки одинаковы и нет блокирующего кода.

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

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

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

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