ホームページ >ウェブフロントエンド >jsチュートリアル >Rx Observable はデフォルトでコールドですか? 「公開」と「共有」によるデータの流れを理解する
すべての Rx オブザーバブルはデフォルトでコールドですか?
デフォルトでは、被験者を除いて、すべての Rx 観測値はコールドです。これは、少なくとも 1 人のオブザーバーがサブスクライブしている場合にのみ値を発行することを意味します。
コールド オブザーバブルをホット オブザーバブルに変えるための Rx オペレーター
主なオペレーターは 2 つあります。コールド オブザーバブルをホット オブザーバブルに変換できます:
cold$.withlateFrom(sth$,...) は依然としてコールドオブザーバブルです。複数のオブザーバブルが withlatestFrom を使用して cold$ にサブスクライブされている場合、それらはサブスクリプション時間に関係なく、それぞれ同じ値のシーケンスを消費します。
Cold Observable の簡略化されたフロー図
Cold Observable の簡略化されたデータ フローを示すと、次のようになります。ホット オブザーバブルの簡略化されたフロー図
ホット オブザーバブルのフローは次のとおりです:
Source -> Observer1 -> Observer2
サブジェクトは中央ハブとして機能します
マルチキャスト オペレーター (公開/共有)Source -> Subject -> Observer1 -> Observer2マルチキャスト オペレーターは内部でサブジェクトを作成し、接続可能なオブザーバブルを返します。オブザーバブルが接続されると、サブジェクトはアップストリームのオブザーバブルをサブスクライブし、サブスクライブされたすべてのオブザーバーにデータをマルチキャストします。
オペレーターを使用する際のデータ フローを考慮する
データ フローを理解するそしてオペレーターの行動が非常に重要です。たとえオブザーバブルがホットであっても、後続の演算子がそのホットまたはコールドの動作にどのような影響を与えるかを考慮することが重要です。以上がRx Observable はデフォルトでコールドですか? 「公開」と「共有」によるデータの流れを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。