扁平化嵌套 Observables.subscribe
Flattening nested Observables.subscribe
我是 Observables
rx.js 的新手,我想知道如何解决以下回调问题:
function getdata1 (argument) {
return this.http.get(url)
.map((res: Response) => res.json());
}
function getdata2 (argument) {
return this.http.get(url)
.map((res: Response) => res.json());
}
getdata1.subscribe((data1: any) => {
console.log("got data one. get data 2 now");
getdata2.subscribe((data2: any) => {
console.log("got data one and two here");
});
});
我知道如果这是 Promises,then()
可以用来压扁它。但是我不知道 Observables
.
中 then()
的等价物
您可以将 flatMap
运算符与 Observable.forkJoin
一起使用:
getdata1().flatMap(data1 => {
return Observable.forkJoin([
Observable.of(data1);
getdata2()
]);
}).subscribe(result => {
var data1 = result[0];
var data2 = result[1];
(...)
});
我是 Observables
rx.js 的新手,我想知道如何解决以下回调问题:
function getdata1 (argument) {
return this.http.get(url)
.map((res: Response) => res.json());
}
function getdata2 (argument) {
return this.http.get(url)
.map((res: Response) => res.json());
}
getdata1.subscribe((data1: any) => {
console.log("got data one. get data 2 now");
getdata2.subscribe((data2: any) => {
console.log("got data one and two here");
});
});
我知道如果这是 Promises,then()
可以用来压扁它。但是我不知道 Observables
.
then()
的等价物
您可以将 flatMap
运算符与 Observable.forkJoin
一起使用:
getdata1().flatMap(data1 => {
return Observable.forkJoin([
Observable.of(data1);
getdata2()
]);
}).subscribe(result => {
var data1 = result[0];
var data2 = result[1];
(...)
});