Rxjs pipe Observable

当有多个 observable 源时,比如调用不同的 API 请求,这三个请求,后一个请求参数依赖前一个请求的结果,类比 Promise, 相当于 Promise pipe。

在 Rxjs 中使用 switchMap 来实现 pipe Observable :

  wxLogin() {
    return from(Taro.login());
  }

  login() {
    this.wxLogin().pipe(
      switchMap(data => {
        console.log('---dddd---');
        console.log(data);
        return from(Taro.getSetting())
      }),
      switchMap(data => {
        console.log('---ccc----');
        console.log(data);
        return from(Taro.getUserInfo());
      })
    ).subscribe(data => {
      console.log('---- !!! ----');
      console.log(data);
    });
  }

上面的三个请求相当于依次执行,即串行的。