我的应用程序中有一个行为主题。我订阅了以下行为主题。
tableData: BehaviorSubject<any> = new BehaviorSubject([]);
我正在使用next()方法从其他一些函数中设置数据,如下所示
for (let item of data) {
let objArr = [];
// some code here like for loop (i am processing 100k records)
objArr.push(object);
if (objArr.length == 20) {
this.tableData.next(objArr);
objArr = [];
}
}
我已经按如下方式订阅了这个BehaviourSubject。但是我无法显示数据库中的所有记录。
this.data = [];
this.utilServ.tableData.subscribe((data) => {
if (data.length !== 0) {
for (let item of data) {
this.data.push(item);
}
}
});
this.utilServ.tableData.next([]);
它仅显示最近的记录。
如何合并/合并/合并来自行为主体的数据?
答案 0 :(得分:2)
当您使用behaviorSubject
的next时,可以对累积数组使用next。
一种方式是这样写
const newValue = this.tableData.value.concat(objArr);
this.tableData.next(newValue);