你能告訴我,如果我需要使用實時功能以及模板上的async管道,如何在這里關閉加載器?
因為它有一個實時功能,所以它不能與finalize運算子一起使用,也就是說,永遠不會完成。所以,請提供任何線索。
component.ts
private getAlerts(loader: HTMLIonLoadingElement): void {
this.alertsChanged$ = this.alertsService.getAlerts().pipe(
finalize(() => {
this.loadingService.dismissLoader(loader); //問題就出在這里
}),
map((res) => res)
);
}
service.ts
getAlerts(): Observable<AlertModel[]> {
return this.angularFireDatabase
.list<AlertModel> (`groups/${this.groupId}/alerts`)
.valueChanges()。
}
.html
<app-alerts
[alerts]="alertsChanged$ | async"
></app-alerts>
uj5u.com熱心網友回復:
如果finalize不起作用,那么使用tap。見下文。
private getAlerts(loader: HTMLIonLoadingElement): void {
this.alertsChanged$ = this.alertsService.getAlerts().pipe(
tap(() => {
this.loadingService.dismissLoader(loader)。
}),
map((res) => res)
);
}
詳情請看這里。https://rxjs.dev/api/operators/tap
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/330247.html
標籤:
上一篇:Ionic內容與標簽選單重疊了
