我试图从解析器中的一系列可观察数据中获取所有数据 . 我首先需要进行http调用以获取所有类型并返回一个数组,我需要循环遍历类型数组并获取每种类型的所有数据 . 最后,我想一次返回一个数组或每种类型的所有数据(在导航到路线之前) .
getAllTypesDataResolverFunction() {
this.getAllTypes()
.flatMap(data => {
let allTypesData = [];
data.forEach(i => {
if(i.type === 4) {
allTypesData.push({'typeObj': i});
return Observable.forkJoin([this.getDataForType(), this.getMoreDataForType()])
.subscribe(data => {
let arrayLength = allTypesData.length-1;
allTypesData[arrayLength].typeObjData = data;
})
}
})
return allTypesData;
}).subscribe(data => {
return data;
})
}
使用我现在的代码,解析器似乎不完整(或者至少不完整嵌套的observable,因此,为该observable返回的数据在组件中是未定义的 . 任何人都可以提出解决此问题的方法吗?谢谢!
1 回答
您可以查看this great blog article,特别是以下部分中的示例:
这似乎达到了你想要做的 .
在您的情况下,您可以在映射数据之前考虑
Array.filter
函数,因为您似乎只对类型4的数据感兴趣(并且可能使用枚举而不是幻数) .