我的ionic 5(Angular)项目使用Google firebase数据库。
这是我用来从firebase数据库读取数据的示例代码。我只想读取数据一次。由于valueChanges()
是一个观察对象,我想我每次使用它时都必须取消订阅。
constructor(db: AngularFireDatabase) {
this.tempsub = db.list('items').valueChanges().subscribe(data=>{...});
this.tempsub.unsubscribe()
}
我是否必须在我的用例中取消订阅?是否有更好的解决方案,只从firebase数据库中读取一次数据?
2条答案
按热度按时间z9smfwbn1#
您可以使用
take
运算符来配置所需的发射次数。使用
take(1)
将发出第一个值,然后完成并取消订阅。iqxoj9l92#
你也可以使用
forEach()
,它返回一个promise,当Observable完成或出错时,它将解析或拒绝。您不能取消订阅
forEach()
,但在这种情况下不需要取消订阅,因为take(1)
从源中获取第一个值,然后完成。