这里,我想合并可观察值的值。该代码有效,但是以这种方式进行嵌套订阅不是很好。我正在寻找更好的解决方案。预先感谢。
someObservable().subscribe(
data => { // array of elements
data.forEach(
element => {
anotherObservable(element.id)
.subscribe(
anotherData => doSomething(data, anotherData); // both data needed
);
}
);
}
);
您可以使用mergeMap
喜欢这个:
return this.someObservable().pipe(
mergeMap(element=> this.anotherObservable(element.id).pipe(
map(anotherData => {
return {
res1: element ,
res2: anotherData
}
})
))
)
您可以在这里使用forkJoin
。并从rxjs
]导入
import { forkJoin } from 'rxjs/observable/forkJoin';