問題タブ [behaviorsubject]
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.
angular - ストリームを結合するRxjs
OK基本的に私が達成したいのは、共同クエリのように、別のオブザーバブルに依存するオブザーバブルです。さらに詳しく説明すると、2 つのテーブルがあります。1 つはアクティビティのテーブルで、もう 1 つはそれらのアクティビティの最終日のテーブルです。そのため、私がやろうとしているのは、まずアクティビティを取得してから、それらのアクティビティの最終日の検索を実行することです。両方のストリームを組み合わせて、アクティビティと最終日付を含む配列を 1 つの新しいオブジェクトに返すことができます。
私は運がなくてもさまざまな実装を試しました。
これが私のservice.tsを実装する方法です(テーブルの両方のサービスは同じです):
そして、これを達成するために私が試みたさまざまな方法(component.tsで):MergeMap
(これはコンパイルされません)
フラットマップ:
これはコンパイルされますが、動作しません
そして最後のものは私がそれを機能させるのに最も近いものですが、それはオブザーバブルの実装が悪いことを知っています:
このアプローチで私が経験したもう1つの問題は、ネストされたオブザーバブルが何も返さない場合は機能しないため、即興のソリューションを実行する必要がありましたが、ネストされたオブザーバブルが何も返さない場合、flatMapまたはmergeMapが機能しないかどうか疑問に思っています
angular - 複数のコンポーネント間でデータを共有する - オブジェクト参照による問題
複数の兄弟コンポーネント間でデータを共有するために、データ ストア サービスを実装しています。各コンポーネントは、データ ストアの変更について通知を受ける必要があります。データ ストアはそれ自体では設定されません。データはコントローラーから設定する必要があります。
data.store.ts
両方のコンポーネントのngInit
メソッドで、データ ストアをサブスクライブします。
問題:this.documentIssue
コンポーネントを変更すると、次のようになります。
this.documentIssue
サブスクライブしている他のすべてのコンポーネントのインスタンス ( ) を変更する- ストア内のインスタンスの変更 (
this._documentIssue.getValue()
)
setValue
目標: - コンポーネント内に個別のオブジェクトがあり、メソッドを呼び出して変更し、ストアに送信できます。
rxjs - BehaviorSubject からの共有マッピングへの 2 番目のサブスクリプションが実行されない
BehaviorSubject
インスタンス ( )から共有マッピングをサブスクライブすると、t
最初のサブスクリプションのみが実行されます。
元のBehaviorSubject
( obj
) が 2 番目の値を発行すると、最新の値のみが出力され、両方のサブスクリプションが実行されます。
私のコードをチェックしましょう
私の期待される結果は
しかし、実際の結果は
素朴な質問で申し訳ありません。これを私に説明できる人はいますか?
どうもありがとう