Содержание

setInterval() — JavaScript — Дока

  1. Кратко
  2. Пример
  3. Как пишется
  4. Как понять
    1. Время между запусками
  5. На практике
    1. Николай Лопин советует

Кратко

Скопировано

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

Пример

Скопировано

Раз в секунду напечатать текст в консоль:

const intervalId = setInterval(function() {  console.log('Я выполняюсь каждую секунду')}, 1000)
          const intervalId = setInterval(function() {
  console.log('Я выполняюсь каждую секунду')
}, 1000)

Как пишется

Скопировано

Функция setInterval() принимает два аргумента:

  • функцию, которая будет регулярно выполняться при истечении таймера;
  • время в миллисекундах между запусками функции.

Миллисекунда – это одна тысячная доля секунды. Одна секунда состоит из 1000 миллисекунд.

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

Есть вариант вызова set

Interval() с произвольным количеством аргументов. Тогда все аргументы после второго будут передаваться в выполняемую функцию:

setInterval(function(name, age) {  console.log(`Раз в секунду печатаю имя «${name}» и ${age}`)}, 1000, 'Ivan', 33)// Раз в секунду печатаю имя «Иван» и 33
          setInterval(function(name, age) {
  console.log(`Раз в секунду печатаю имя «${name}» и ${age}`)
}, 1000, 'Ivan', 33)
// Раз в секунду печатаю имя «Иван» и 33

Этот вариант вызова используется редко.

Как понять

Скопировано

В JavaScript код выполняется по порядку сверху вниз. Если интерпретатор встречает вызов функции, то он сразу выполняет её. Но разработчику может понадобится запланировать вызов функции, чтобы она выполнилась регулярно через заданные промежутки времени. Например, чтобы регулярно проверять обновления данных на сервере.

Запланировать регулярное выполнение функции по расписанию можно с помощью setInterval(). Выполнение setInterval() создаёт активный таймер в окружении браузера. Таймеры имеют числовой идентификатор, он хранится в браузере в списке активных таймеров. Этот идентификатор нужно использовать, чтобы остановить регулярное выполнение функции.

Время между запусками

Скопировано

Указанное вторым аргументом число в миллисекундах обозначает время между запусками функции. При этом не учитывается время работы самой функции.

Рассмотрим пример:

let i = 1setInterval(function print() {  console. log(i)  i++}, 1000)
          let i = 1
setInterval(function print() {
  console.log(i)
  i++
}, 1000)

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

На практике

Скопировано

Николай Лопин советует

Скопировано

🛠 Нужно быть абсолютно уверенным, что выполняемая функция отрабатывает быстрее, чем указанный таймер.

setInterval()

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

🛠 Если необходимо выжидать время не между запусками функций, как в setInterval(), а между завершениями, то этого можно достичь цепочкой вызовов setTimeout():

let timerId;timerId = setTimeout(function work() {  console. log('я выполняюсь через секунду после предыдущей')  timerId = setTimeout(work, 1000)}, 1000)
          
let timerId; timerId = setTimeout(function work() { console.log('я выполняюсь через секунду после предыдущей') timerId = setTimeout(work, 1000) }, 1000)

Схема работы такого кода будет выглядеть иначе:

Если вы нашли ошибку, отправьте нам пул-реквест!

Во время отправки формы что-то пошло не так. Попробуйте ещё раз?

clearTimeout()

ctrl + alt +

clearInterval()

ctrl + alt +

Window.setInterval() — JavaScript: Полное руководство, четвертое издание [книга] код

Наличие

JavaScript 1. 2; IE 4 поддерживает только одну из двух форм

Синопсис

   окно   .setInterval(   код   ,   интервал   )   окно   .setInterval(   функция   ,   интервал   , 
аргументы...
) 9004 4 909041

аргументы

код

Строка кода JavaScript для периодического выполнения. Если это строка содержит несколько операторов, они должны быть отделены от каждого другое через точку с запятой.

функция

Функция JavaScript для периодического выполнения. Эта форма метод недоступен в IE 4.

интервал

Целое число, определяющее интервал в миллисекундах между вызовы кода

или функция .

аргументы...

Любое количество произвольных значений для передачи в качестве аргументов каждому вызов функции .

Возвращает

Значение, которое можно передать в Window.clearInterval() для отмены периодического выполнения код или функция .

Описание

setInterval() многократно выполняет JavaScript операторы, указанные в строке

код , с интервалом интервалом миллисекунд.

В Netscape 4, но не в IE 4, функция может быть передана как первая аргумент вместо строки. В этой форме setInterval() указанная функция func , вызывается повторно с интервалом в интервал миллисекунд. Любые дополнительные значения аргументов, args , переданные в setInterval() передаются в качестве аргументов каждому вызов func() .

В обеих формах метод

setInterval() возвращает значение, которое позже может быть передано в Window.clearInterval() для остановки code или func от повторного выполнения.

setInterval() связан с setTimeout() . Использовать

Получить JavaScript: полное руководство, четвертое издание теперь с обучающей платформой O’Reilly.

члена O’Reilly знакомятся с книгами, живыми мероприятиями, курсами, подобранными в зависимости от должности, и многим другим от O’Reilly и почти 200 ведущих издателей.

Начать бесплатную пробную версию

setinterval · Темы GitHub · GitHub

Вот 162 публичных репозитория соответствует этой теме...

Крисгуттандин / рабочие-таймеры

Спонсор Звезда 318

99x / timercpp

Звезда 223

СеверинДК / момент-таймер

Звезда 108

элманси / установить-интервал-асинхронный

Звезда 94

днтжан / raf-интервал

Звезда 78

дбкаплун / неуправляемый

Звезда 73

Аасим-А / Асинхронный таймер

Звезда 35

шыструк / SetIntervalJS

Звезда 32

Колизей / таймер

Звезда 22

гамтик / хрономан

Звезда 15

Крисгуттандин / аудио-контекст-таймеры

Спонсор Звезда 14

DVDGiessen / виртуальные часы

Звезда 13

СКиндий / Асинхронный JS-Nodejs

Звезда 12

вебоорг / Таймеры

Звезда 10

DarkHorseCorder / Next.

js-CardGame-Backend-API-Interval-TypeScript Звезда 9

Яоир / ClockExample-Go-WebAssembly

Звезда 9

КакПрограммированиеРаботает / Обратные вызовы

Звезда 9

4рзаэль / повторный интервал

Звезда 9

использовать крючки / интервал реакции-хуков

Звезда 7

джахнестакадо / кабель

Звезда 7

Улучшить эту страницу

Добавьте описание, изображение и ссылки на установитьинтервал страницу темы, чтобы разработчикам было легче узнать о ней.