У меня есть объект с массивом семейств.Каждое из этих семейств содержит массив объектов членов семьи.У каждого из членов семьи есть контракт, которого сейчас нет.Моя задача - извлечь контракт из API остальных и объединить его с объектом-участником.
Object {
content: [{
familiId: '1',
familyMemmbers: [
{ id: '1'
name: 'Tom'
...
},
{ id: '2'
name: 'Peter'
...
}
]
},
{
familiId: '2',
familyMemmbers: [
{ id: '1'
name: 'Paul'
...
},
{ id: '2'
name: 'Joe'
...
}
]
}]
}
this.service.getFamilies().switchMap(familiyPage => from(familiyPage.content))
.switchMap(family => from(family.familyMembers)).mergeMap(member => this.service.getContract(member.id).map(contract => {
return {...member, contract}
Мой подход возвращает объект { id: 1, name: 'Tom', contract: ....}
на первом излучении и { id: 2, name: 'Peter', contract: ....}
на втором излучении, { id: 1, name: 'Paul', contract: ....}
на третьем излучении и { id: 2, name: 'Joe', contract: ....}
на четвертом излучении.
Что я хотел бы иметь, так это то, что существует только один эмитт, который содержит всю структуру данных.т.е.
Object {
content: [{
familiId: '1',
familyMemmbers: [
{ id: '1',
name: 'Tom',
contract: {...},
...
},
{ id: '2',
name: 'Peter',
contract: {...},
...
}
]
}, ...]
}