Javascript 从对象属性上的可观察对象获取值

Javascript 从对象属性上的可观察对象获取值,javascript,rxjs,Javascript,Rxjs,给定一个具有内部可观测属性的对象的可观测值,如何从可观测链中获得内部可观测值以及对象的其余部分 简化示例构造: let obs = of({ prop1: 'foo', prop2: of('bar') }) 结果应该是 { prop1: "foo", prop2: "bar" } 我尝试过使用flatMap,但只能从内部可观察对象本身获取值,在这个过程中丢失了对象的其余部分 编辑:朱利叶斯·季泽维切乌斯的答案稍加修改后的版本解决了我的问题: of({ prop1: 'foo', prop2

给定一个具有内部可观测属性的对象的可观测值,如何从可观测链中获得内部可观测值以及对象的其余部分

简化示例构造:

let obs = of({ prop1: 'foo', prop2: of('bar') })
结果应该是

{ prop1: "foo", prop2: "bar" }
我尝试过使用flatMap,但只能从内部可观察对象本身获取值,在这个过程中丢失了对象的其余部分

编辑:朱利叶斯·季泽维切乌斯的答案稍加修改后的版本解决了我的问题:

of({ prop1: 'foo', prop2: of('bar') }).pipe(
    switchMap(val => val.prop2,
        (a, b) => ({ prop1: a.prop1, prop2: b })
    )).subscribe(console.log)

您可以使用展平操作符的ResultSelector功能(如
switchMap
flatMap
等):

obs = of({ prop1: 'foo', prop2: of('bar') }).pipe(
  switchMap(val => val.prop2,
  (a, b) => ({a, b})
).subscribe(console.log)