RxJs операторы.

ссылка на источник

В RxJs существует 2 вида операторов.

  1. Канальные (pipeble), которые могут быть вставлены в канал следующим образом.

    observableInstance.pipe(operator())

Например filter(…) или mergeMap(…)

Они не изменяют существующий экземпляр потока а возвращают новый поток у которого логика подписки такая же как и у исходного потока.

Канальные операторы - это функции, которые принимают исходный поток в качестве аргумента и возвращают новый поток, не изменяя исходного.

  1. Созидательные операторы.

Они создают новые потоки из разных источников (массивов, событий и т.д).

Например 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 */);

Потоки высшего уровня.

Наблюдаемые потоки (НП) обычно генерируют значения простых типов как числа, массивы и т.д.

Но зачастую возникает необходимость наблюдать наблюдателя. Их называют наблюдателями высшего порядка.