我需要结合两个Obersvables。Observable in Observables
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数组。
谢谢,最后它在你的榜样工作:) – Benny