Операторы и метод pipe()¶
Для предварительного преобразования отправляемых объектом Observable
данных или преобразования и управления самими Observable
используются специальные функции — операторы.
1 2 3 |
|
Здесь в map()
каждое число равное или меньше 10 заменяется на 1
, если больше — на 0
.
Все RxJS операторы подразделяются на категории. Так, различают операторы:
- Создания (
of
,from
,fromEvent
,interval
); - Преобразования (
map
,scan
,buffer
); - Фильтрации (
filter
,take
,skip
,distinct
); - Обработки ошибок (
catchError
,retry
,onErrorResumeNext
); - Условия (
skipUntil
,skipWhile
,takeUntil
,takeWhile
); - Математические (
min
,max
,count
); - Утилиты (
tap
,delay
); - Для Connectable Observable (
share
,shareReplay
,publish
).
pipe()¶
Начиная с версии 5.5 в библиотеке RxJS большинство операторов, которые применяются к Observable
, объединяются в методе pipe()
. Метод вызывается у объекта, а операторы передаются ему в качестве аргументов через запятую в порядке их вызова.
1 2 3 4 5 6 |
|
Методу pipe()
передаются только те операторы, которые принимают Observable
и возвращают Observable
. Они находятся в rxjs/operators
и называются pipeable operators (англ.).
В RxJS также есть одноименная утилита pipe()
, используемая для создания переиспользуемых композиций операторов.
1 2 3 |
|
Пример приведен только для наглядности. Практическое использование такого оператора не эффективно.