readProductFromServer() {
this.qS = this.afDatabase.list('product_table', ref => {
return ref.limitToLast(1000) ;
}).snapshotChanges().map(changes => {
return changes.map(c => ({ key1: c.payload.key, ...c.payload.val() }));
});
this.qS.subscribe(values => {
});
}
如何使此代码只读一次。我在互联网上搜索并没有得到我的代码的答案,StackOverflow中提供了一些解决方案,但与我的代码不匹配?
答案 0 :(得分:1)
由于这是一种可观察的方法,因此,如果您只希望一次读取数据并且不获取任何可能更新的新内容,则只需在操作员链中添加take(1)
:
this.qS = this.afDatabase.list('product_table', ref => {
return ref.limitToLast(1000) ;
}).snapshotChanges().map(changes => {
return changes.map(c => ({ key1: c.payload.key, ...c.payload.val() }));
}).take(1);
this.qS.subscribe(values => {
});
首先要发射一次,然后完成可观察的阶段。