setInterval() в JavaScript — многократный вызов функции

В этом руководстве вы узнаете, как использовать функцию JavaScript setInterval() для многократного вызова функции с фиксированной задержкой между каждым вызовом.

setInterval() — это метод объекта window. setInterval() неоднократно вызывает функцию с фиксированной задержкой между каждым вызовом.

Синтаксис:

let intervalID = setInterval(callback, delay,[arg1, arg2, ...]);

В этом синтаксисе:

  • callback — это функция обратного вызова, которая должна выполняться каждые миллисекунды delay.
  • delay — это время (в миллисекундах), которое таймер должен задерживать между выполнениями функции обратного вызова.
  • arg1, … argN — это аргументы, которые передаются функции обратного вызова.

setInterval() возвращает числовое, отличное от нуля число, которое идентифицирует созданный таймер. Вы можете передать intervalID в clearInterval(), чтобы отменить тайм-аут.

Обратите внимание, что setInterval() работает так же, как setTimeout(), но повторно выполняет обратный вызов один раз при каждой указанной задержке.

Пример

В следующем примере функции setInterval() и clearInterval() используются для изменения цвета заголовка раз в секунду после нажатия кнопки «Пуск». Если вы остановите кнопку, clearInterval() отменит тайм-аут.

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8" />
  <title>JavaScript setInterval Demo</title>

  <script>
    let intervalID;
 
    function toggleColor() {
      let e = document.getElementById('flashtext');
      e.style.color = e.style.color == 'red' ? 'blue' : 'red';
    }

    function stop() {
      clearInterval(intervalID);
    }

    function start() {
       intervalID = setInterval(toggleColor, 1000); 
    }
  </script>
</head>
 
<body>
  <p id="flashtext">JavScript setInterval Demo</p>
  <button onclick="start()">Start</button>
  <button onclick="stop()">Stop</button>
  
</body>
</html>

Заключение

  • setInterval() неоднократно вызывает функцию один раз с фиксированной задержкой между каждым вызовом.
  • setInterval() возвращает timeoutID, который можно передать в clearInterval() для отмены тайм-аута.
Рейтинг
( Пока оценок нет )
Александр Русаков / автор статьи
Программист, разработчик, 12 лет опыта работы в крупных компаниях. Быстро освоил typescript, делюсь своими знаниями на страницах этого сайта.
Загрузка ...
JavaScript и TypeScript