RxJS:secondobserveable';s的输入参数取决于第一个可观测值';s输出

RxJS:secondobserveable';s的输入参数取决于第一个可观测值';s输出,rxjs,Rxjs,我有两个可观察的东西 baseObs$ = serviceCall(); // this return Observable<Foo> secondObs$ = serviceCall(args); // this return Observable<Bar> 这适合我的需要,但我得到的反馈是,没有订阅应该住在另一个订阅里面。如何使用上面定义的baseObs$和secondObs$实现相同的功能 所有都是伪代码,但希望我没有做太多的打字错误。不过我认为这个想法应该很清楚

我有两个可观察的东西

baseObs$ = serviceCall(); // this return Observable<Foo>
secondObs$ = serviceCall(args); // this return Observable<Bar>
这适合我的需要,但我得到的反馈是,没有订阅应该住在另一个订阅里面。如何使用上面定义的baseObs$和secondObs$实现相同的功能


所有都是伪代码,但希望我没有做太多的打字错误。不过我认为这个想法应该很清楚。

在第一个可观察对象只发出一次的简单情况下(如典型的HTTP请求),任何
开关映射
合并映射
等都可以:

serviceCall().pipe(
switchMap(x=>serviceCall(x.args))
).subscribe(console.log);

如果这一假设不成立,那么您将需要阅读他们各自的文档,以了解他们之间的行为将如何变化。事实上,我建议阅读它们,了解它们之间的差异,即使只是一般性的差异,因为在处理被动代码时,这是非常有价值的信息。

这正是我所需要的。你的假设也是正确的!
baseObs$.subscribe(x => {
  const args = x.args; // just example. Point is, I need x to build args.
  serviceCall(args).subscribe(y => {
    console.log(y); // This is fine
  });
});