Angular 角度2–;作用于两个 ;行为主体/观察对象

Angular 角度2–;作用于两个 ;行为主体/观察对象,angular,rxjs,Angular,Rxjs,假设我有一个组件,它需要两个可观察对象来呈现其内容: this.manifest.subscribe((a) => { f(a, b) }) this.route.params.subscribe((b) => { f(a, b) }) 在a到达后调用f()和/或在b到达后再次调用它(例如,更新路由参数)的正确角度/rxjs方法是什么 显然,我可以手动跟踪a和b,但这看起来既丑陋又不优雅。有没有更具角度感的方法?您可以使用combinelatetest合并两条流

假设我有一个组件,它需要两个可观察对象来呈现其内容:

this.manifest.subscribe((a) => {
    f(a, b) 
})

this.route.params.subscribe((b) => {
    f(a, b)
})
a
到达后调用
f()
和/或在
b
到达后再次调用它(例如,更新路由参数)的正确角度/rxjs方法是什么


显然,我可以手动跟踪
a
b
,但这看起来既丑陋又不优雅。有没有更具角度感的方法?

您可以使用
combinelatetest
合并两条流,并在其中一条流触发时触发

Rx.Observable.combineLatest(this.manifest, this.route.params, (a, b) => f(a, b))
  .subscribe(c => /*Do something with the result of f(a,b)*/

注意,上面只有当它至少有一个值来自每个源,但我不认为这应该是一个问题,如果你的源代码<>行为主体

> P>如果你需要两个可观察到的解决方案,你可能需要考虑<代码>可观察到的。COUNT(MOB1,OBI2)。p> 订阅连接的可观察对象时,将首先订阅
obs1
,然后订阅
obs2