在我的Angular应用程序中,我试图实现以下目标
Observable
A Observable
B 如果没有第三点,我想这很简单,我会做这样的事情:
this.myService.getData()
.pipe(
flatMap(firstResult => this.myService.getMoreData(firstResult.someField))
).subscribe(secondResult => {
// process the data
});
问题是这样,我最终只能访问secondResult
,但我也需要firstResult
。
我不是RxJS可观对象的专家,所以我真的很乐意提供有关如何解决此问题的建议。
答案 0 :(得分:3)
您可以将第二个结果映射到两个结果的数组。
this.myService.getData()
.pipe(
concatMap(firstResult => this.myService.getMoreData(firstResult.someField).pipe(
map(secondResult => [firstResult, secondResult]),
))
).subscribe(([first, second]) => ...);