中调用所有可观察到的物品
基本上我想做的是例如获取所有书籍的作者,然后为每个作者获取所有书籍。我找不到操作员。
更好的解释代码:
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();
}
您可以使用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);
});
这将在并行