【发布时间】:2018-09-10 14:57:43
【问题描述】:
我有一个需要从 firebase 解析多个文档的功能
fetchDocuments(documentIds: string[]): Observable<TreeNodeDocument[]> {
const observables = [];
for(let id of documentIds){
observables.push(this.fetchDocument(id));
}
return Observable.combineLatest(observables, (...docs: TreeNodeDocument[]) => {
//some transformations on the resolved documents
return docs;
});
}
this.fetchDocument(id) 返回一个 TreeNodeDocument 类型的 observable。
只要可以解析所有文档,此功能就可以工作。现在有时会发生某些文件无法解析的情况,那么相应的fetchDocument(id) observable 就会失败。没关系,预计某些文件无法解决。但是,如果其中一个失败,Observable.combineLatest 将完全失败(我知道这是一个很好的默认行为)。
我现在的问题是,我能否以某种方式使用combineLatest,这样我就只获得了提取有效的文档而忽略了它失败的文档?或者我可以通过其他方式实现这一目标吗?
干杯
【问题讨论】:
标签: angular typescript rxjs