我想构建一个看起来像这样的树对象列表:{name: string, fruits: Fruit[]}[]
我从后端获得带有空水果数组的树,并且无法更改。因此,我需要分别获取水果。我想创建一个方法,该方法以可观察的形式返回完整的树对象(填充的水果数组),并将树数组作为参数。这是我尝试过的:
getTreesWithFruits(trees: Tree[]): Observable<Tree[]> {
trees.forEach(tree => {
this.getFruits(tree).subscribe(fruits => {
tree.fruits = fruits;
});
}),
}
显然这是行不通的,因为我需要以可观察的方式返回完整的Tree []。如何使用RXJS解决此问题?
答案 0 :(得分:1)
const obj = level1.level2[level1.ID][P1];
checker = ['o_1', 'o_2', 'o_3', 'o_4'].every(key => obj[key] === undefined);
如果您不想并行调用from(trees).pipe(
mergeMap(tree =>
this.getFruits(tree).pipe(
map(fruits => {
tree.fruits = fruits;
return tree;
})
)
),
toArray()
)
,则将this.getFruits
替换为mergeMap
。