Получить значение из Observable для свойства объекта - PullRequest
1 голос
/ 09 мая 2019

При наличии наблюдаемой с объектом, который имеет внутреннюю наблюдаемую в качестве одного из своих свойств, как можно получить значение внутренней наблюдаемой вместе с остальной частью объекта из наблюдаемой цепочки?

Упрощенная примерная конструкция:

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)

1 Ответ

1 голос
/ 09 мая 2019

Вы можете использовать функцию ResultSelector из оператора выравнивания (например, switchMap, flatMap и т. Д.):

obs = of({ prop1: 'foo', prop2: of('bar') }).pipe(
  switchMap(val => val.prop2,
  (a, b) => ({a, b})
).subscribe(console.log)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...