Я новичок в Angular2 и наблюдаемых. Я пытаюсь вернуть результат цепочки наблюдаемых моему преобразователю и не могу найти ответ на SO. Все работает нормально, когда я возвращаю только один наблюдаемый, но не работает, когда они связаны. Я упростил код, чтобы дважды последовательно вызывать одну и ту же тестовую функцию:
@Injectable()
export class SwResolve implements Resolve<any> {
constructor(private swService: SwService) {}
resolve (route: ActivatedRouteSnapshot): Observable<MyObject> | Promise<any> | any {
this.swService.getTestData().subscribe(data => {
return this.swService.getTestData();
});
}
}
SwComponent:
export class SwComponent implements OnInit {constructor(
private route: ActivatedRoute,
private router: Router
) { }
ngOnInit(): void {
this.route.data.forEach((data: any) => {
// Handle data received
});
}
};
SwService:
getTestData() {
return Observable.create(observer => {
let testObject : SwDataObject = {
'labels':['value0','value1'],
'desktop':[123,456],
'mobile':[789,1011]
};
observer.next(testObject);
observer.complete();
});
}
Что я здесь делаю не так?
Спасибо !
Изменить 17 июня: добавление дополнительной информации, так как мне потребовалось время, чтобы обернуть голову вокруг методов RxJs (flatMap, mergeMap, ...). Основная причина заключалась в том, что я просто не понимал их функционального аспекта. Я призываю людей в одной лодке взглянуть на прекрасная серия статей по функциональному программированию Чарльза Скалфани.