Метод timer позволяет создавать удобную возможность выполнять что-либо через заданный промежуток времени.
Синтаксис - timer(delayTime, intervalTime).
Подключение - import { timer } from ‘rxjs’;
Пример кода:
const source = timer(1000, 1000);
source.subscribe(data => console.log(data));
Здесь - с задержкой в одну секунду (и с интервалом также в одну секунду) в консоли пойдут значения - 0, 1, 2, 3, 4 и тд. Если задержка не нужна, тогда можно поставить 0:
const source = timer(0, 1000);
source.subscribe(data => console.log(data));
Если нужно, чтобы timer сработал как метод setTimeout в классическом JavaScript, то нужно опустить второй аргумент - интервал выполнения:
const source = timer(1000);
source.subscribe(data => console.log(data));
… в этом случае команда выполнится один раз - в задержкой в одну секунду.
Маленький практический пример использования timer:
const source = timer(0, 1000);
source.subscribe(data => console.log(new Date()));
… это получился простейший таймер (не обратного отсчета). При использовании в Angular можно задействовать встроенный pipe - date: ‘hh:mm:ss’.
Интересная особенность - первым параметром можно задать дату запуска таймера - signature: timer(initialDelay: number | Date, period: number, scheduler: Scheduler): Observable. Не пробовал, но надо взять на заметку.
На timer очень похож метод interval, однако timer можно рассматривать как расширенный и более гибкий вариант interval.
Ссылки: