【发布时间】:2017-05-08 22:10:36
【问题描述】:
我需要合并两个 Obersvables。
products
---1
---name: 'product 1'
---supplierId: '1'
---2
---name: 'product 2'
---supplierId: '2'
suppliers
---1
---name: 'supplier 1',
---contact: 'contact 1',
---2
---name: 'supplier 2',
---contact: 'contact2'
最后我想收到以下内容:
[
{
name: 'product 1'
supplierId: '1',
supplier: { name: 'supplier 1', contact: 'contact1'}
},
{
name: 'product ´2'
supplierId: '2',
supplier: { name: 'supplier 2', contact: 'contact2'}
},
]
目前我有以下代码:
this.af.list('products')
.map(products => {
let items = [];
(<Array<any>>products).forEach(p => {
if (p.supplierId) {
let supplier$ = this.af.object(`suppliers/${p.supplierId}`).take(1);
items.push(Observable.forkJoin(Observable.of(p), supplier$, (p1, supplier) => {
return {
name: p1.name,
supplier: supplier
};
}))
}
})
return items;
})
.do(res => console.log('After Map', res))
.flatMap(res => Observable.combineLatest(Observable.of(res)))
.subscribe(res => console.log('Final Response', res))
不管我尝试什么,我要么一无所获,要么收到一个 ForkJoinObservables 数组。
【问题讨论】:
标签: angular firebase observable