[英]use RXJS to return results of two observables together
我想從 URL 中讀取參數,然后使用該值調用 observable。 如果找到了結果,我想繼續它並調用另一個可觀察對象。 理想情況下,兩個調用都被包裝了,我只需要訂閱一次,然后我就可以將兩個結果重新組合在一起。
到目前為止,這是我的實現:
this.route.paramMap.pipe(
switchMap(params => {
return forkJoin(
this.treeService.getTree(params.get('treeName')),
this.treeService.getTree(params.get('treeName')).pipe(
mergeMap(tree => this.fruitService.getFruit(tree.id))
)
)
})
).subscribe(res => console.log(res));
這工作得很好,但我必須進行 2 次相同的調用……我該如何改進它,以便它只對 treeService 進行一次調用?
您可以使用這樣的內部map
:
this.route.paramMap.pipe(
switchMap(params => {
return this.treeService.getTree(params.get('treeName')).pipe(
switchMap(tree => this.fruitService.getFruit(tree.id).pipe(
map(fruit => ([tree, fruit]))
))
)
})
).subscribe(res => console.log(res));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.