Прежде всего, просто упомянув, что когда вы уходите от своего компонента, он будет разрушен и будет воссоздан, так что имейте в виду, что вам нужно подписаться на observables
в ngOnInit
и unsubscribe
в 'ngOnDestroy'
Другой момент, я обычно возвращаю observalbe
из моего сервиса что-то вроде этого
getSoponsors() {
return this.afs.collection<Sponsoremphasizedtext>('sponsors').snapshotChanges().pipe(map(actions => {
return actions.map(a =>
{
const data = a.payload.doc.data() as Sponsor;
data.id = a.payload.doc.id;
return data;
});
}));
}
, затем в моем компоненте
isAlive: boolean = true
ngOnInit() {
this.service.getSoponsors()
.pipe(takeWhile(() => this.isAlive))
.subscribe(data => ...)
}
ngOnDestroy() {
this.isAlive = false;
}