RxJs - timer

Reading time ~1 minute

Метод 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.


Ссылки:

RxJs - map

Первый "серьезный" метод в моей RxJs-копилке знаний. На самом деле все просто - этот метод получает на вход поток, обрабатывает каждый ev...… Continue reading

RxJs - from

Published on September 02, 2019

RxJs - take и takeLast

Published on August 30, 2019