Популярные операторы в RxJs

Вот таблица, содержащая некоторые из наиболее популярных операторов RxJS, их описание и примеры:

ОператорОписаниеПримеры
mapПреобразует значения из исходного потока в новые значенияof(1, 2, 3).pipe(map(x => x * 2)); // Вывод: 2, 4, 6
filterФильтрует значения исходного потока на основе заданного условияof(1, 2, 3, 4, 5).pipe(filter(x => x % 2 === 0)); // Вывод: 2, 4
mergeMap (или flatMap)Преобразует каждое значение исходного потока в новый поток и объединяет их в один потокof(1, 2, 3).pipe(mergeMap(x => of(x * 2))); // Вывод: 2, 4, 6
switchMapПрекращает предыдущий поток и переключается на новый поток при каждом новом значении исходного потокаof(1, 2, 3).pipe(switchMap(x => of(x * 2))); // Вывод: 2, 4, 6
concatMapПреобразует каждое значение исходного потока в новый поток и последовательно объединяет ихof(1, 2, 3).pipe(concatMap(x => of(x * 2))); // Вывод: 2, 4, 6
debounceTimeОтправляет последнее значение из исходного потока только после определенной задержкиfromEvent(input, 'input').pipe(debounceTime(300));
distinctUntilChangedОтфильтровывает повторяющиеся последовательные значения в исходном потокеof(1, 1, 2, 2, 3).pipe(distinctUntilChanged()); // Вывод: 1, 2, 3
takeБерет только определенное количество значений из исходного потокаof(1, 2, 3, 4, 5).pipe(take(3)); // Вывод: 1, 2, 3
combineLatestКомбинирует значения из нескольких потоков и выпускает новое значение при каждом изменении хотя бы одного из потоковcombineLatest([source1$, source2$]).subscribe(([value1, value2]) => console.log(value1, value2));
zipКомбинирует значения из нескольких потоков попарно и выпускает новое значение, содержащее попарно сочетающиеся значенияzip(source1$, source2$).subscribe(([value1, value2]) => console.log(value1, value2));

Это только несколько примеров популярных операторов RxJS. В RxJS существует ещё множество других операторов, которые могут быть полезными в различных ситуациях.