問題タブ [rxjs-observables]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - BehaviorSubject vs Observable?
Angular RxJs パターンを調べていますが、 aBehaviorSubject
と anの違いがわかりませんObservable
。
私の理解では、aBehaviorSubject
は時間の経過とともに変化する可能性がある値です (サブスクライブすることができ、サブスクライバーは更新された結果を受け取ることができます)。これは、のまったく同じ目的のようObservable
です。
いつ anObservable
と aを使いBehaviorSubject
ますか? またはその逆を使用BehaviorSubject
する利点はありますか?Observable
angular - RxJs オペレーターは、ループを使用して複数のサブスクリプションを回避します
Angular アプリのナビゲーション コンポーネントを作成しています。次のコードがあります。複数サブスクリプションのアンチパターンを回避したい。RxJs の構文と、どの方法 (forkJoin、mergeMap など) に苦労しています。
これらをリファクタリングして、サブスクライブ内のサブスクライブを削除するにはどうすればよいですか。
これは私が持っているもので、現在は機能していますが、サブスクライブ内にサブスクライブがあります:
rxjs - Observable サブスクライバーを取得し、別の Observable にサブスクライブさせる
簡単に言えば
既存の Observable (まだ完了していない) が与えられた場合、関連付けられたサブスクライバー (サブスクライブに渡された関数) を取得して、代わりに別の Observable にサブスクライブさせる方法はありますか?
環境
私のアプリケーションのサービスは、SeverEvent接続を作成し、 ConnectableObservableをプロキシ接続に返し、publishオペレーターを使用してマルチキャストを許可するのに役立ちます。このサービスは、内部ストアを介して既存の接続を追跡します。
接続の作成時に、関連付けられたトラッカーが既に存在する場合 (ID は接続のエンドポイントを使用して作成されます)、サービスは次のことを行う必要があります。
- ok
既存のトラッカーのServerEvent接続を閉じます - ok
新しいSerevrEvent接続を開きます (したがって、新しい ConnectableObservable になります) - 既存のトラッカーの Observable を新しい Observable に置き換えますが、代わりに既存のサブスクライバーを新しい Observable にサブスクライブさせます
ConnectionTrackerを作成するコード部分は次のとおりです
ありがとうございました。