基本的に私はチャンクでロードされるデータの配列でBehaviorSubject<[]>
を膨らませようとしています。
BehaviorSubject<[]>
には新しいデータのチャンク(Array.Push
など)が追加されますが、別の配列を使用してBehaviorSubject.next
に保存および追加したくないので、レンダリングに時間がかかりすぎます。データが時間の経過とともに増加するにつれて。
なにか提案を?
getValue()
メソッドを使用して、やりたいことを実現できます。
例:
data = new BehaviorSubject<any[]>([]);
addData(foo:any):void{
// I'm using concat here to avoid using an intermediate array (Push doesn't return the result array, concat does).
this.data.next(this.data.getValue().concat([foo]));
}
concat
を使用する代わりに、spread演算子を使用できます。
data = new BehaviorSubject<any[]>([]);
addData(foo: any): void {
this.data.next([...this.data.getValue(), ...foo])
}
これは、ストレートconcat
よりも少し読みやすいことがわかりました