2017-09-06 8 views
4

RxJSのホットオブザーバブルは、外部プロデューサを使用するオブザーバブルですが、コールドオブザーバブルはローカルプロデューサを使用します(例:RxJS Hot vs Cold Observable by Ben Lesh参照)。ホットとコールドオブザーバブル(Angular)

角度​​は、冷たい観察可能物を使用して、データを送信し、電話をかける度に繰り返します。

Angularでは、特定のメソッドがホットまたはコールドオブザーバブルを使用するかどうかを知る方法はありますか?

+0

[ColdまたはHTTPのHTTPリクエストの違い?](https://stackoverflow.com/questions/42815886/difference-between-cold-or-hot-http-requests) – jonrsharpe

+3

私はそうは思わない実際に正直であることは本当に問題ではないと私は信じています。ちょうど常識に従ってください:)。たとえば、 'HttpClient.post'は冷たいですが、[' ActivatedRoute.params'](https://angular.io/api/router/ActivatedRoute)は熱心なObservableです(これはSubjectの深い内部のインスタンスですあなたがそれを購読していなくても存在する必要があります)。 – martin

答えて

5

番号は最も安全です。また、私は@ martinのコメントに同意しない、それは絶対に重要である。高価な操作の再登録や再発行を避けるためには、コールドオブザーバブルに注意する必要があります(マルチキャスティングや結果を対象に保存するなど)。

また、オブザーバブルがいつ/どのように完了するかについては、ドキュメントを参照する必要があります。たとえば、​​の購読を心配する必要はありません。ActivatedRoute.paramsが完了しないため、takeUntilのようなものを使用しない場合、または購読状況を把握していないとメモリリークが発生する可能性があるためです。

*実際には、明確にするために、寒い所見だけでなく、すべての観察に注意する必要があります。熱い観測データは高価な作業負荷を発生させる可能性があります。

関連する問題