Вы правы, в документации этих методов нет. Однако , когда я копал в rxjs хранилище, я нашел хорошие комментарии о кране (слишком долго , чтобы вставить здесь) и трубные оператор:
/**
* Used to stitch together functional operators into a chain.
* @method pipe
* @return {Observable} the Observable result of all of the operators having
* been called in the order they were passed in.
*
* @example
*
* import { map, filter, scan } from 'rxjs/operators';
*
* Rx.Observable.interval(1000)
* .pipe(
* filter(x => x % 2 === 0),
* map(x => x + x),
* scan((acc, x) => acc + x)
* )
* .subscribe(x => console.log(x))
*/
Вкратце:
Труба : используется для объединения функциональных операторов в цепочку. Раньше мы могли просто это сделать observable.filter().map().scan()
, но поскольку каждый оператор RxJS является отдельной функцией, а не методом Observable, нам нужно pipe()
создать цепочку этих операторов (см. Пример выше).
Нажатие : может вызывать побочные эффекты с наблюдаемыми данными, но никак не изменяет поток. Раньше назывался do()
. Вы можете думать об этом так, как если бы наблюдаемый был массивом с течением времени, тогда он tap()
был бы эквивалентом Array.forEach()
.