すべての Rx オブザーバブルはデフォルトでコールドですか?
デフォルトでは、被験者を除いて、すべての Rx 観測値はコールドです。これは、少なくとも 1 人のオブザーバーがサブスクライブしている場合にのみ値を発行することを意味します。
コールド オブザーバブルをホット オブザーバブルに変えるための Rx オペレーター
主なオペレーターは 2 つあります。コールド オブザーバブルをホット オブザーバブルに変換できます:
withlatestFrom 演算子と Cold Observables
withlatestFrom はコールド性を変更しません。観測可能なものの熱さ。あなたの例では:
Rx.fromEvent と Hot/Cold動作
CodePen の例で観察された矛盾は、Rx.fromEvent オブザーバブルがサブスクライブされたときではなく、要素がクリックされたときにのみイベントが発行されるという事実によるものです。このため、Observable への各サブスクリプションは異なるイベントを受け取ります。
Cold Observable の簡略化されたフロー図
Cold Observable の簡略化されたデータ フローを説明するには:
Source -> Observer1 -> Observer2
ホット オブザーバブルの簡略フロー図
ホット オブザーバブルのフローは次のとおりです:
Source -> Subject -> Observer1 -> Observer2
サブジェクトは中央ハブとして機能し、受信データをすべての購読者にマルチキャストしますobservers.
マルチキャスト オペレーター (公開/共有)
マルチキャスト オペレーターは内部でサブジェクトを作成し、接続可能なオブザーバブルを返します。オブザーバブルが接続されると、サブジェクトはアップストリームのオブザーバブルをサブスクライブし、サブスクライブされたすべてのオブザーバーにデータをマルチキャストします。
オペレーターを使用する際のデータ フローを考慮する
データ フローを理解するそしてオペレーターの行動が非常に重要です。たとえオブザーバブルがホットであっても、後続の演算子がそのホットまたはコールドの動作にどのような影響を与えるかを考慮することが重要です。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3