问题描述
我目前正在尝试找出如何使用RxJS加载角度/射击集合,包括其所有子集合。
这是我目前的方法:
return this.collectionRef.valueChanges().pipe(
flatMap((entities: Entity[]) => entity),mergeMap((entity: Entity) => this.setSubCollection1(entity)),mergeMap((entity: Entity) => this.setSubCollection2(entity)),scan((entities: Entity[],entity: Entity) => entities.filter(a => a.id !== entity.id).concat(entity),[])
);
并将文档加载到其子集合中
private setSubCollection1 = (entity: Entity): Observable<Entity> => {
return this.subCollectionRef.valueChanges(actor).pipe(
map((subEntities1: SubEntity1[]) => {
entity.subEntities1 = subEntities1;
return entity;
})
);
}
全流播放时效果很好。
但是,现在我想在一个Promise中获取所有数据:我已经尝试过.first().toPromise()
,但这仅获取第一个条目,如果集合中没有条目,则不会完成。在查询中使用reduce
也不起作用,因为valueChanges()
永远不会完成。
我希望收到你的来信。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)