私はAngularアプリケーションを構築していますが、RxJを理解する上で問題があり、問題を解決するためにそれを使用する方法があります。RxJs - アレイ内の特定のアイテムを購読する
のは、あなたが見ることができるように私は、私もアイテム
用のデータストアをItem型の2つのオブジェクトexport class TemplateComponent {
private item1: Item;
private item2: Item;
constructor(private store: ItemStore) {
}
}
とItemクラス
を必要とするコンポーネントを持っているとしましょう
export class ItemStore {
public subscribedItems: Item[];
constructor(private httpService: ItemHttpService) {
}
public getSubscribedItems() {
this.httpService.getItems(this.subscribedItems)
.subscribe(response => {
this.subscriberItems = response;
}
}
}
ItemStoreには、項目を取得するAPIを呼び出すサービスが挿入されています。
アイデアは、APIから更新する必要があるサブスクリプションされたアイテムのリストを持つことで、アイテムへのバインドが必要な各コンポーネントはアイテムをsubscribedItems配列に追加でき、ストアは新しいアイテムをAPIを継続的に使用します。アイテムは実際にセンサデータなので、値は時間とともに変化することがありますが、その名前は同じです。
私のTemplateComponentはitem1とitem2のみの変更を購読でき、残りのアイテムは気にしませんか? 、または私はsubscribedItems配列を購読し、それを通過してitem1とitem2の新しい値を取得する必要がありますか?
基本的に、私が理解しているかどうかを見てみましょう。定期的にアップデートを受け取るアイテムのリストがあります。配列の項目2と4を考えてみましょう。残りのアイテムはどうなりますか?他のコンポーネントによって「要求されていない」場合でも更新されますか?あるいは、コンポーネントがコンポーネントを要求したときにのみアップデートを受け取るようにしたいのですか? –
「オープン」コンポーネントで現在使用されているアイテムのみを要求する必要があります。コンポーネントiが破棄されたときに、それらのアイテムのサブスクリプションは、別の開いているコンポーネントによって監視されていない場合に完了する必要があります。 –