でチェーン観測私はAngular2と観測に新しいです。私は観測者の連鎖の結果を私のリゾルバに返そうとしているので、SOの答えを見つけることができませんでした。 1つの観測値だけを返すとすべてうまく動作しますが、それらが連鎖すると失敗します。私は2回連続同じテスト関数を呼び出すにコードを簡素化しました:2角度:レゾルバ
@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();
});
}
をやっていますか?
ありがとうございます!
編集Jun 17: RxJsのメソッド(flatMap、mergeMap、...)の周りに私の頭を包み込むのにしばらく時間がかかりました。主な理由は、私はちょうどそれらの機能面を得ていなかったからです。私はチャールズ・スカルカニの同じボートにいる人々にthese excellent series of articles on functional programmingを見てもらうことを勧めます。
、mergeMapとflatMapは、何らかの理由でHTTP呼び出しへの排他的だったことを考えていました。あなたが持っているATMのコードを投稿することができますプロパティを読み取ることができません「シンボル(Symbol.iterator」)undefined' – Stanislasdrg
の: 'TypeError例外:コードは、別のエラーを返します。私は、マージマップの答えでリターンステートメントが欠落していることがわかります。私はそれを更新しました(上記の答えを参照)。それが助けてくれたらどうぞ。 – KwintenP
ありがとうKwintenP、それは更新されたバージョンで動作します! – Stanislasdrg