1. ホーム
  2. angular

[解決済み] Angularチュートリアルのpipeメソッドとtapメソッドとは何ですか?

2022-04-26 14:31:10

質問

でのチュートリアルにしたがっています。 https://angular.io というメソッドについて、ドキュメントを見つけるのに苦労しています。 pipetap . については、何も見つかりません。 https://angular.io または http://reactivex.io/rxjs/ .

私の理解では pipetap は、いずれも Observable は、RxJSからインポートされているのですよね?これらは何をするものなのでしょうか?

これらのメソッドはAngularの一部ですか?これらの2つのメソッドは何をするのですか?

どのように解決するのですか?

おっしゃるとおり、ドキュメントにはそのようなメソッドはありません。しかし、私は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() . observable が時間軸の配列であるかのように考えることができ、次に tap() と等価である。 Array.forEach() .