Ответ 1
Вы правы, в документации отсутствуют эти методы. Однако, когда я копался в репозитории rxjs, я нашел хорошие комментарии об tap (слишком долго, чтобы вставить сюда) и pipe операторам:
/**
* 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))
*/
Вкратце:
Pipe: используется для соединения функциональных операторов в цепочку. Раньше мы могли просто сделать observable.filter().map().scan()
, но поскольку каждый оператор RxJS является автономной функцией, а не наблюдаемым методом, нам нужно pipe()
, чтобы создать цепочку из этих операторов (см. пример выше).
Нажмите: можете выполнять побочные эффекты с наблюдаемыми данными, но не изменяет поток в любом случае. Ранее назывался do()
.