2017-12-21 3 views
8

私はすでにもいつ `publishReplay`と` shareReplay`を使うべきですか?

  • publish株式単一のサブスクリプションとはConnectableObservable

  • Share()Replay postfixのはかなりあるpublish().refcount()

である(ので、我々はConnect()に持っている)を返すことを知っています明らかに、それは最後の排出量を返します。

publishReplay().Connect()

しかし、私は次のことができます。私は、複数のhttp要求をしたくない場合は

<p>{{ (person | async)?.id }}</p> //present markup 

<p *ngIf=”show”>{{ (person | async)?.userId }}</p> //future markup 

は、私が使用することができます。

のは、例えば、現在および将来のサブスクリプションを持つ角度httpリクエストを見てみましょうまた:shareReplay()を使用してください、しかし、私はそこに他よりも使用するのが正しいと確信しています。

質問:

私はshareReplaypublishReplayを使用する必要がありますか?そのHttpの現在の点で違いが現れます&今後のリクエスト?

NB なぜshareReplayについてのドキュメントがありませんか?

答えて

4

publishReplayは、サブスクリプションの開始時期を制御できます。 shareReplayは、最初のサブスクリプションで自動的に開始されます。

一般に、テンプレート(htmlファイル)で観測値を使用する場合は、shareReplayを使用してください。あなたが購読を解除することを心配する必要がないという利点があります。

+1

もしそうなら、refcountがどのように '0'になるのか理解できませんが、今後の定期購読の値を出します。 http://jsbin.com/nirisugudi/edit?html,js,console –

+0

また、あなたのコメントとQuestionのテンプレートに関して、 'async'も自動的に退会しませんか? –

+0

refcountが '0'であることをどのように知っていますか? – martin

関連する問題