Операторы и метод 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 | |
Пример приведен только для наглядности. Практическое использование такого оператора не эффективно.