@amperka/timer

Модуль для работы с объектами-таймерами, которые генерируют событие через равные промежутки времени.

Чтобы что-то происходило регулярно в JavaScript есть встроенная функция setInterval. Объект-таймер — это обёртка вокруг этой функциональности, которая удобнее в обращении, если тики нужно приостанавливать, запускать заново, смещать фазу или менять период «на лету».

var myTimer = require('@amperka/timer')
  .create(5); // создаём таймер, тикающий каждые 5 секунд
 
// Подписываемся на событие-тик
myTimer.on('tick', function() {
  print('Beep');
});
 
myTimer.run(); // запускаем таймер

Функции модуля

create(interval)

Создаёт и возвращает новый объект-таймер с периодом interval секунд.

По умолчанию таймер остановлен. Используйте Timer.run для запуска.

Timer

Класс для работы с таймером. Используйте create, чтобы создать новый экземпляр.

Timer.run()

Запускает таймер, заставляя начать генерировать события tick.

Если таймер уже запущен, вызов не имеет эффекта.

Первое срабатывание после запуска произойдёт через время равное периоду таймера.

Timer.stop()

Останавливает таймер, обнуляет текущую позицию во времени (фазу), не приводит к событию tick.

Timer.reset()

Обнуляет текущую позицию во времени (фазу), не приводит к событию tick.

Если таймер не запущен, вызов не имеет эффекта.

Timer.tick()

Обнуляет текущую позицию во времени (фазу), и моментально приводит к событию tick.

Timer.isRunning()

Возвращает true, если таймер запущен.

Timer.interval([val],[units])

Устанавливает или возвращает период срабатывания таймера.

Если параметр val опущен, возвращает текущий период. Если val задан — устанавливает.

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

Опциональный параметр units определяет единицы измерения периода:

  • "s" или не задан — секунды;
  • "ms" — миллисекунды;
  • "m" — минуты.

Timer.on('tick', callback)

Происходит при каждом тике таймера. Функция callback вызывается без параметров.