基本上我想要做的是例如获取所有书籍的作者,然后获得每个作者的所有书籍。我无法为此找到操作员。
代码以获得更好的解释:
this.actividadService.getActividades()
.switchMap((result) => {
const actividadUno = result[0];
console.log(result);
if (actividadUno) {
for(let actividad of result){
console.log('actividad = ');
console.log(actividad);
return this.actividadFechasFinalService.getActividadByIDYear(actividad.ID, actividad.Anio).catch(this.handleError);
}
} else {
return Observable.of('No results');
}
},
(actividades, actividadesFechas)=>[actividades, actividadesFechas])
.subscribe(actividades => this.arregloActividadesFlatMap = actividades);
这个问题是switchmap只返回数组中的第一个项目
这是我的服务返回的内容:
getActividades(): Observable<ActividadPlaneacion[]>{
return this.actividadesSubject.asObservable();
}
答案 0 :(得分:1)
您可以使用forkJoin方法。首先构建一个包含所有可观察对象的数组,然后使用forkJoin调用它们。
.switchMap((result) => {
// make array of observables
let books = result.map(actividad => this.actividadFechasFinalService.getActividadByIDYear(actividad.ID, actividad.Anio).catch(this.handleError));
return Observable.forkJoin(...books);
});
这将并行调用所有可观察量