0

私の現在のプロジェクトでは、観測可能な戻り値があり、観測可能な値によって返される値に従ってローカル変数を更新する必要があります。

これを行うには、Observable を直接サブスクライブする方法と、pipable オペレーターを使用する方法の 2 つがあります。

あなたの経験/知識によると、ベストプラクティスは何ですか?

1 番目のアプローチ (直接サブスクライブ):

this.myObservable$.subscribe(value=> {
  this.myValue = value;
});

2 番目のアプローチ (pipable 演算子を使用):

this.myObservable$.pipe(
    tap(value=> this.myValue = value)
  ).subscribe();
4

2 に答える 2

0

pipeローカル変数を強制的に更新する必要がある場合は、これを行うことを検討します。同じオブザーバブルに対して複数のサブスクリプションを持っている可能性があり、それらのいずれかでローカル変数を更新するのを忘れている可能性があります。Observable 内でこれを処理するのは良いことです。

myOb$ = this.myObservable$.pipe(
    tap(value=> this.myValue = value)
)

ちょうどあなたの場合、Observableに変更を加えていない場合は、tap()代わりに使用できますmap()

サブスクライブされている場所ではなく Observable が存在するクラスの変数を更新したいと考えてください。Observable が Service に存在し、複数のコンポーネントがそれをサブスクライブしているとします。すべての発行の後、サービスの変数を更新する必要があります。

ローカル変数が Observable をサブスクライブするクラスに属している場合、もちろん、パイプ内でそれを行う意味はありません。

于 2019-04-24T07:35:33.667 に答える