我在firebase中有一个数据结构
{
"name": "Sample",
"category": ["123456", "789012"]
}类别数组包含ID,它引用另一个集合中的文档。我可以得到上面的文档作为可观察的。我真正想要的最终结果是下面的数据结构
{
"name": "Sample"
"category": [
{
"name": "Category 1"
},
{
"name": "Category 2"
}
]
}我怎样才能带来这些数据呢?我不认为switchMap适合这个。如果是这样的话,有人能举个例子吗?
发布于 2018-06-20 04:28:14
您可以尝试使用flatMap和forkJoin。FlatMap允许您将多个异步请求链接在一起,而forkJoin允许您等待所有可观察对象返回一个值,然后再继续。
你可以写出这样的代码:
var finalData;
firstRequest('sample').flatMap((data) => {
// assuming data = { name: "Sample", catagory: [ "23123", "31321", ... ] }
finalData = data;
var observables = [];
data.catagory.forEach((c) => {
observable.push(secondRequest(c));
});
return forkJoin(observables);
}).flatMap((results) => {
// assuming results is an array like [ { name: "Catagory 1", ... } ]
finalData.category = results;
return finalData;
});https://stackoverflow.com/questions/50935890
复制相似问题