Как сделать последовательное исполнение settimeout в javascript?

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

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

Как сделать последовательное исполнение settimeout в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от willa_will , месяц назад

@cayla 

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


Например, если вы хотите выполнить функцию myFunction три раза с интервалом в 1 секунду между каждым вызовом, можно написать код следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
function runMyFunctionNTimes(n) {
  if (n > 0) {
    setTimeout(function() {
      myFunction();
      runMyFunctionNTimes(n - 1);
    }, 1000);
  }
}

runMyFunctionNTimes(3);


Эта функция вызывает myFunction и затем запускает setTimeout для вызова себя снова через 1 секунду, если число вызовов n еще не исчерпано.


Вы можете изменить количество вызовов функции, изменяя значение n при вызове runMyFunctionNTimes.