2つの観測結果をどのように組み合わせるか?2つの観測結果を角度で結合する方法は?
this.http.get(url1)
.map((res: Response) => res.json())
.subscribe((data1: any) => {
this.data1 = data1;
});
this.http.get(url2)
.map((res: Response) => res.json())
.subscribe((data2: any) => {
this.data2 = data2;
});
toDisplay(){
// logic about combining this.data1 and this.data2;
}
以上、我々はすぐにDATA1とDATA2を得ることができなかったので、間違っています。
this.http.get(url1)
.map((res: Response) => res.json())
.subscribe((data1: any) => {
this.http.get(url2)
.map((res: Response) => res.json())
.subscribe((data2: any) => {
this.data2 = data2;
// logic about combining this.data1 and this.data2
// and set to this.data;
this.toDisplay();
});
});
toDisplay(){
// display data
// this.data;
}
私は結果を2番目の観測可能なサブスクライブする方法で組み合わせることができます。 私の要件を達成するのがよい習慣であるかどうかはわかりません。
更新:
私が見つけたもう一つの方法は、結果を結合し、新しい観測可能を返すようにforkJoin
を使用しています。これを行うための素晴らしい方法
let o1: Observable<any> = this.http.get(url1)
.map((res: Response) => res.json())
let o2: Observable<any> = this.http.get(url2)
.map((res: Response) => res.json());
Observable.forkJoin(o1, o2)
.subscribe(val => { // [data1, data2]
// logic about combining data1 and data2;
toDisplay(); // display data
});
toDisplay(){
//
}
あなたの更新は本当に[解答](https://stackoverflow.com/help/self-answer)でなければなりません。 – cartant