samdeweb
@samdeweb
Начинающий верстальщик

Рекурсивный setTimeot и/или setInterval. В чём разница?

Здравствуйте. Сегодня узнал про рекурсивный setTimeout и так и не понял в чём конкретная разница. Ниже приведу примеры, объясните на них если это возможно. Заранее спасибо.

setInterval:
Например у меня есть функция которая выполняется за 1 секунду, и есть setInterval с интервалом 500мс. Если я правильно понял, то setInterval не будет смотреть на то, сколько времени требует для выполнения функция. Она будет всё равно запускать эту функцию каждые 500мс.

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

Какая из этих версий - правильнее?

Рекурсивный setTimeout:
Про этот способ тоже не совсем понял. Опять же пример: есть функция, которая выполняется за 1 секунду и интервал c помощью setTimeout к примеру 500 мс. Будет ли ждать setTimeout полного выполнения функции или разница с setInterval в том, что гарантированно функция будет запускаться каждые 500 мс?
  • Вопрос задан
  • 723 просмотра
Решения вопроса 1
yarkov
@yarkov Куратор тега JavaScript
Помог ответ? Отметь решением.
Вызывайте setTimeout в конце функции, когда она уже выполнится, и будет вам счастье.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
LaRN
@LaRN
Senior Developer
Часть вопросов вот тут рассматривается.
https://habr.com/ru/post/462355/
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы