我在角度7中使用Firestore接收数据。当我注册可观察对象时,将永远不会执行complete方法。 一个主意? 我的代码如下:
getMesuresJours(nombreJours: number): Observable<Mesure[]> {
const _date = moment().startOf('day').subtract(nombreJours, 'days');
return this.afs.collection(this.path, ref =>
ref.where('dateMesure', '>=', _date.toDate())
.orderBy('dateMesure', 'desc'))
.snapshotChanges().pipe(map(changes => {
return changes.map(donnees => {
const mesure = donnees.payload.doc.data() as Mesure;
const _dateMesure: any = mesure.dateMesure;
// convertion de la date du serveur (Timestamp)
// en date Javascript pour puovoir l'afficher
// au niveau des graphes
mesure.dateMesure = (_dateMesure as firestore.Timestamp).toDate();
return mesure;
});
}));
服务的使用:
getMesures() {
this.mesureService.getMesuresJours(this.nombrePeriode).subscribe({
next: donnees => {
this.mesures = donnees;
console.log(this.mesures);
if (this.mesures.length !== 0) {
this.data = this.chartService.getFormatData(this.mesures, this.nombrePeriode, this.option);
}
},
error: err => { console.log('Erreur lors de la recupération des données :', err); },
complete: () => { console.log('Recupération complete'); }
}
);
}
complete:()=> ...永远不会执行。
此外,当我更改变量numberPeriod的值时 在 getMesure() 方法的 next 块中,可观察对象在新闻发布之前首先向我发送以前的数据。 如何解决此问题并做
this.mesures = donnees;
console.log(this.mesures);
if (this.mesures.length !== 0) {
this.data = this.chartService.getFormatData(this.mesures, this.nombrePeriode, this.option);
}
仅当新数据到达时?