我开始使用angular,并且需要帮助来解决此问题。我正在使用Firestore数据库。
getDiveSitesFrequentation(userId: string): void {
this.getDives(userId)
.pipe(map(dives => mergeMap(
(dive: Dive) => this.diveSiteService.getDiveSite(dive.dive_site)
.pipe(map(diveSite => { return dive.number + ' ' + diveSite.name }))
))).subscribe(v => console.log(v))
我需要控制台日志返回包含潜水号和潜水地点名称的字符串数组。
但是此代码仅返回mergemap函数。
有人可以帮我吗?
谢谢。
答案 0 :(得分:0)
您走在正确的道路上,我相信这会给您您想要的东西:
import { combineLatest } from 'rxjs';
...
this.getDives(userId)
.pipe(
mergeMap(dives => {
const diveSiteStringObservables = dives.map(
(dive: Dive) => {
return this.diveSiteService.getDiveSite(dive.dive_site)
.pipe(
map(diveSite => {
return dive.number + ' ' + diveSite.name;
})
);
}
);
return combineLatest(diveSiteStringObservables);
})
).subscribe(v => console.log(v));
关键是使用CombineLatest()将Observable数组合并为一个返回数组的Observable。