扁平化嵌套 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];
  (...)
});