【发布时间】:2019-05-10 13:51:51
【问题描述】:
想象一下当你有一些 Observable 包含实时变化的数据时的情况,下面的例子......
interface User {
name: string;
projectId: string;
dataThatChangesALotInRealTime: Object;
}
userData: Observable<User>
这个userData observable 在组件中用于显示一些实时变化的数据。例如
<p>
{{ (userData | async)?.dataThatChangesALotInRealTime }}
</p>
现在我想根据userData observable 中的当前数据向数据库中插入一些数据。这是函数
addToDatabase() {
let sub = this.userData.subscribe(data => {
this.exampleDatabase.doc(`test/${data.dataThatChangesALotInRealTime.id}`)
.add({ test: 'hello'})
sub.unsubscribe() // <- This
})
}
问题
这是取消订阅内部订阅以避免多次插入数据库的正确解决方案吗?有没有不同/更好的方法来做到这一点?
这只是一个简单的例子,如果你有一些问题或者我的解释很差,请在 cmets 中告诉我,我会更新我的问题。谢谢
【问题讨论】:
标签: angular rxjs observable subscription unsubscribe