【发布时间】:2018-08-29 15:33:34
【问题描述】:
我调用后端响应:
[
"https://some-url.com/someData1.json",
"https://some-url.com/someData2.json"
]
每个 JSON 可以有以下架构:
{
"isValid": boolean,
"data": string
}
我想获取所有数据的数组,将 isValid 设置为 true
backend.get(url)
.pipe(
mergeMap((urls: []) =>
urls.map((url: string) =>
backend.get(url)
.pipe(
filter(response => response.isValid),
map(response => response.data)
)
)
),
combineAll()
)
当两个 .json 都将“isValid”设置为 true 时,我会得到包含两个数据的数组。 但是当其中一个将“isValid”设置为 false 时,可观察到的永远不会完成。
我可以使用 mergeAll 而不是 combineAll,但随后我会收到单个数据流而不是所有数据的集合。
有没有更好的方法来过滤掉 observable?
【问题讨论】: