【发布时间】:2023-03-13 03:55:01
【问题描述】:
在如何实现以下目标方面存在一些实际问题。我有一个服务,该服务带有一个返回带有键的事件列表的函数。然后我想将此键传递给另一个函数,该函数返回一个更详细的对象,在其他数据中,例如消息数和所有者信息。然后我订阅组件。
目前我正在使用带有 forEach 的 .map 运算符,然后使用订阅来获取其他信息。我想我需要使用 switchMap (删除内部订阅),但我一生都不能让它工作。也尝试过 flatMat、MergeMap、forkJoin 和 Observable.from,但只是让我自己感到困惑。相关代码开头如下
return this.afs.collection<Event>(`users/${this.currentFirebaseUserObj.uid}/eventsByUser`)
.valueChanges()
.map((allEvents) => {allEvents.forEach(event =>{
现在我想返回getCompleteEvent()函数的结果,它返回一个Event类型的Observable来替换上面的事件对象,我想我需要订阅这个,但是我怎样才能返回结果第二次调用并替换第一个事件对象,即
this.getCompleteEvent(event.key).subscribe(completeEvent => {
return completeEvent
}
另一方面,我可以通过不同的函数将特定字段添加到 forEach 中的事件对象,但希望 getComplete 函数在订阅后返回整个对象,即
event.userOwnerObj = this.getUserObject(event.ownerId);
event.noOfMessage = this.getNoOfMessages(event.key);
感觉一团糟,不确定如何组织这部分。
【问题讨论】:
标签: angular rxjs angularfire2