【发布时间】:2021-03-05 07:57:58
【问题描述】:
我目前正在开发一个需要手动“从服务器重新获取”功能的 Angular 组件。
下面列出的版本有效,但有什么方法可以简化它?看起来有点复杂。
private refreshSignalSubject = new Subject<any>();
refreshSignal$: Observable<any> = this.refreshSignalSubject.asObservable();
ngOnInit() {
this.item$ = combineLatest(
this.route.paramMap.pipe(
map(params => params.get('id')),
),
this.refreshSignal$.pipe(
startWith(() => Math.random())
)
).pipe(
map((values) => {
const [id, _] = values
return id
}),
switchMap(id => this.apiService.get(`/items/${id}`)),
share()
)
}
reloadItem() { // this method is triggered from the view and from other methods in this component
this.refreshSignalSubject.next(Math.random());
}
【问题讨论】:
标签: angular rxjs rxjs-observables