представьте себе ситуацию, когда у вас есть Observable
, который содержит данные, которые изменяются в реальном времени, пример ниже ...
interface User {
name: string;
projectId: string;
dataThatChangesALotInRealTime: Object;
}
userData: Observable<User>
Эта наблюдаемая userData
используется в компоненте для отображения некоторых данных, которые изменяютсяв настоящее время.например,
<p>
{{ (userData | async)?.dataThatChangesALotInRealTime }}
</p>
Теперь я хочу вставить некоторые данные в базу данных в соответствии с текущими данными в userData
наблюдаемом.Вот функция
addToDatabase() {
let sub = this.userData.subscribe(data => {
this.exampleDatabase.doc(`test/${data.dataThatChangesALotInRealTime.id}`)
.add({ test: 'hello'})
sub.unsubscribe() // <- This
})
}
Вопрос
Это правильное решение для отмены подписки внутри подписки, чтобы избежать многократной вставки в базу данных?Есть ли другой / лучший способ сделать это?
Это просто минималистичный пример: если у вас есть какие-то вопросы или мое объяснение плохое, дайте мне знать в комментариях, и я обновлю свой вопрос.Спасибо