let fruit = {
id: 1,
isGood: false
}
假设我有一个函数调用,它接受水果对象的 id 并返回一个可观察值,该可观察值解析为 bool 值,指示值 isGood 是 true 还是 false。
我想映射水果对象数组并调用上述函数,然后使用返回的值在对象上设置 isGood 并在返回的同一对象上设置水果的 id。
在我看来,我应该能够做这样的事情:
forkJoin(
fruitArray.map(fruit => {
return of({
"data": isFruitGood(fruit.id)),
"id": fruid.id
})
})
).subscribe(result => console.log(result))
这里的问题是返回了一个对象数组,但是对象中数据的可观察集没有解析。
最佳答案
您的问题是您的 forkJoin
正在展开您的 of
可观察量,但不是“数据”属性中返回的内部可观察量。
您需要传递 forkJoin
一个可观察数组,为您获取 isFruitGood
值,然后在这些值返回后,构建您的对象:
forkJoin(fruitArray.map(
fruit => isFruitGood(fruit.id)
)).pipe(
map(isGoodArray => isGoodArray.map(
(isGood, i) => ({
data: isGood,
id: fruitArray[i].id
})
)
)).subscribe(result => console.log(result))
这是一个示例 StackBlitz
关于javascript - 您可以返回一个对象数组,其中每个对象都包含来自 forkJoin 的可观察值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66513221/