Планирование вызова функции: setInterval
JavaScript простым языком
Last updated
Was this helpful?
JavaScript простым языком
Last updated
Was this helpful?
Рассмотрим ещё один метод для планирования вызова функции – setInterval
.
Принцип работы точно такой же, как и у его брата setTimeout
(), за одним небольшим исключением: setInterval
повторяет вызов переданной тобою функции через указанное время.
Как только потребность в нём пропадает, данный метод лучше всего останавливать.
setInterval
, как и setTimeout
, возвращает идентификатор
, по которому в дальнейшем можно остановить выполнение setInterval
:
Давай попробуем выполнить следующую задачу: с помощью setInterval
выведем в консоль слово "Привет"
3 раза
. Каждое слово должно появляться через секунду
после предыдущего.
Код:
Итак, мы определили функцию hello
, которую затем передали в качестве первого аргумента в метод setInterval
, вторым аргументом указали время 1000
мс (1 секунда
) через которое постоянно нужно запускать функцию hello
.
Также мы определили переменную counter
(счётчик), которая будет считать количество запусков функции hello
(напомню, по условию нам нужно запустить эту функцию только 3 раза
).
В самой функции hello
:
Сначала выводим в консоль слово "Привет"
;
Затем увеличиваем значение счётчика;
Строгим сравнением проверяем не равен ли счётчик значению 3
. Если условие выполняется, следовательно, слово "Привет"
будет выведено 3 раза
и далее нам нужно остановить выполнение setInterval
, для этого нам поможет метод clearInterval
.
Результат:
Перед словом "Привет"
стоит цифра 3
, это означает, что данная надпись трижды выводилась в консоль (так браузер сворачивает одинаковые значения выводимые в консоль, чтобы уменьшить количество мусора).
Собственно и всё. Задача выполнена. Обязательно повтори ее на практике.
Итак, как и в случае с setTimeout
(лучше прочитай о , будет намного понятнее), setInterval
принимает первым аргументом либо ссылку на функцию, либо функцию, а вторым аргументом передается время в миллисекундах, через которое периодически будет выполняться переданная функция: