将 Observable 的参数提供给 returns Observable 的函数

Providing a parameter from an Observable to a function that returns an Observable

我有一个具有以下签名的函数:

fetchUserCar(userId: string): Observable<Car>

但是要获取userId参数,我必须调用一个我无法编辑的函数,如下所示:

private user$ = new ReplaySubject < User > ();
public getUser(): Observable < User > {
  return this.user$.asObservable().share();
}

我该怎么做?

您需要调用 getUser(),然后 flatMap 调用 fetchUserCar 传递从 getUser() 获得的用户 ID。

fetchCar(): Observable<Car> {
    this.userService.getUser()
        .flatMap(user => this.carService.fetchUserCar(user.id))
}