Что произойдет, если вызвать setTimeout внутри функции, вызванной через setTimeout?

Пользователь

от jazmyne , в категории: JavaScript , 9 месяцев назад

Что произойдет, если вызвать setTimeout внутри функции, вызванной через setTimeout?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от hobart.rath , 9 месяцев назад

@jazmyne 

Если вызвать setTimeout внутри функции, которая была вызвана через setTimeout, то новый таймер будет выполнен после истечения времени предыдущего таймера.


Давайте рассмотрим следующий пример:

1
2
3
4
5
6
7
setTimeout(function() {
  console.log('Первый setTimeout');
  
  setTimeout(function() {
    console.log('Второй setTimeout');
  }, 2000);
}, 1000);


В этом примере сначала будет установлен таймер с задержкой в 1000 миллисекунд (1 секунда). По истечении этого времени будет вызвана функция, которая выводит в консоль "Первый setTimeout".


Затем внутри этой функции будет установлен второй таймер с задержкой в 2000 миллисекунд (2 секунды). По истечении этого времени будет вызвана вложенная функция, которая выводит в консоль "Второй setTimeout".


Таким образом, оба таймера будут выполнены последовательно с задержкой 1000 и 2000 миллисекунд соответственно.