представьте ситуацию, когда у вас есть некоторый 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
})
}
Вопрос
Является ли это правильным решением для отказа от подписки внутри подписки, чтобы избежать многократной вставки в базу данных? Есть ли другой/лучший способ сделать это?
Это просто минималистичный пример, если у вас есть какие-то вопросы или мое объяснение плохое, дайте мне знать в комментариях, и я обновлю свой вопрос. Спасибо