我需要捕获一个查询参数,然后订阅一个API来返回结果。我使用combineLatest完成了这个,但它似乎有点矫枉过正。有没有办法简化这个,因为我不需要组合多个queryParamMap?
ngOnInit() {
Observable.combineLatest([
this.route.queryParamMap
])
.switchMap(combined => {
let page = combined[0].get('page');
return this.service.getAll(); //{ page: page}
})
.subscribe(results => this.results = results.results);
}
答案 0 :(得分:1)
this.route.queryParamMap
.switchMap(combined => {
let page = +combined.get('page');
return this.service.getAll()
})
.subscribe(
results => this.results = results.results
);
感谢您的回复。
答案 1 :(得分:0)
当然,一个简单的
this.route.paramMap.switchMap((params: ParamMap) => {
let page = +params.id.get('page');
this.service.getAll().subscribe(x => { /* ... */);
});
应该做的伎俩!