Что такое метод pipe и tap в учебнике Angular?

Я следую учебнику в https://angular.io, и у меня возникают проблемы с поиском документации; специально для методов pipe и tap. Я не могу найти ничего на https://angular.io или http://reactivex.io/rxjs/.

Насколько я понимаю, pipe и tap - оба метода Observable, которые импортируются из RxJS, правильно? Что они должны делать?

Где я должен искать документацию методов?

Ответ 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().