我有类似的观测值:
let obs1$ = of(problemsIds).pipe(flatMap(el =>
return forkJoin(el.map(id =>
this.projectsService.getProblemsChanges(+id)))))
let obs2$ = of(versionsIds).pipe(flatMap(el =>
return forkJoin(el.map(id =>
this.projectsService.getVersionById(+id)))))
然后我要并行获取em:
return forkJoin([obs1$, obs2$])
什么也没发生。
但是当ive用1 obs(em的任何人)完成时,它会执行结果。
为什么我不能像这样将其结合起来,又如何实现呢?
p.s。我知道我必须将请求作为ID数组发送,但是我对此情况不感兴趣。
答案 0 :(得分:0)
以下内容应为您工作。请尝试。
const obs1$ = this.problemIds.map(id => this.service.getProblemsChanges(+id));
const obs2$ = this.versionIds.map(id => this.service.getVersionById(+id));
return forkJoin(forkJoin(obs1$), forkJoin(obs2$)).subscribe(data => console.log(data));