给出一个具有内部Observable作为其属性之一的对象的Observable,如何从可观察链中获取内部Observable以及对象的其余部分的值?
简化的示例构造:
let obs = of({ prop1: 'foo', prop2: of('bar') })
结果应该是
{ prop1: "foo", prop2: "bar" }
我尝试过使用flatMap,但是只能从内部可观察到的值本身获取值,而在此过程中丢失了对象的其余部分。
编辑:略微改编的JuliusDzidzevičius的答案解决了我的问题:
of({ prop1: 'foo', prop2: of('bar') }).pipe(
switchMap(val => val.prop2,
(a, b) => ({ prop1: a.prop1, prop2: b })
)).subscribe(console.log)
答案 0 :(得分:1)
您可以通过展平运算符(例如switchMap
,flatMap
等)使用 ResultSelector 函数:
obs = of({ prop1: 'foo', prop2: of('bar') }).pipe(
switchMap(val => val.prop2,
(a, b) => ({a, b})
).subscribe(console.log)