Фронтенд разработка на языке JavaScript. / Реактивное программирование с RxJs. / RxJs операторы.
RxJs операторы.
В RxJs существует 2 вида операторов.
-
Канальные (pipeble), которые могут быть вставлены в канал следующим образом.
observableInstance.pipe(operator())
Например filter(…) или mergeMap(…)
Они не изменяют существующий экземпляр потока а возвращают новый поток у которого логика подписки такая же как и у исходного потока.
Канальные операторы - это функции, которые принимают исходный поток в качестве аргумента и возвращают новый поток, не изменяя исходного.
- Созидательные операторы.
Они создают новые потоки из разных источников (массивов, событий и т.д).
Например of(1, 2, 3) создаст отслеживаемы поток, коорый сгенерирует 1, 2, и 3 друг за другом.
Отличие of и from в том что of([1,2,3]) сгенерирует поток из одного элемента массива, а from([1,2,3]) из 3-х.
Канальность
Канальные операторы это простые функции, которые могут быть вложены в канал так:
obs.pipe(
op1(),
op2(),
op3(),
op3(),
)
Пример созидания потока с помощью созитательных операторов.
import { interval } from 'rxjs';
const observable = interval(1000 /* number of milliseconds */);
Потоки высшего уровня.
Наблюдаемые потоки (НП) обычно генерируют значения простых типов как числа, массивы и т.д.
Но зачастую возникает необходимость наблюдать наблюдателя. Их называют наблюдателями высшего порядка.