如果我有一个组件并想要显示一个加载器
成分</ P>
ngOnInit() {
this.route.params
.do(x => this.contentLoading = true)
.switchMap(x => this.getClientSearchResults())
.subscribe(x => {
this.clientSearchResults = x;
this.contentLoading = false
});
}
模板
<mat-progress-spinner *ngIf="contentLoading" color="accent" mode="indeterminate"></mat-progress-spinner>
加载器将在第一次加载页面时显示,但是对params的任何更改都将不再显示加载程序。我可以看到Observable链每次运行console.log
。 ngZone
在运行Observable链时是否检测不到它?
答案 0 :(得分:0)
switchMap
将完成之前的observable,并切换到新的observable。这意味着在发出第一个参数更改后,subscribe
将不再接收未来的更改。
我认为您想要使用的是mergeMap
。
https://www.learnrxjs.io/operators/transformation/mergemap.html