我有一个名为getTransactionDetails(id:string)的方法,它返回TransactionDetails对象的一个可观察值
getTransactionDetails(id:string):Observable<TransactionDetails>
TransactionDetails对象如下所示:
class TranscationDetails{
id:string;
accessCode: string;
veggiesList: Array<Veggie>;
meatList: Array<Meat>;
}
Veggie对象如下所示:
class Veggie{
id: string;
name: string;
}
我有另一个名为getVeggieSummary(veggieId:string)的方法,它返回VeggieSummary的可观察值:
getVeggieSummary(veggiesId:string):Observable<VeggieSummary>
VeggieSummary如下所示
class VeggieSummary{
id:string;
name:string;
color:string;
kind:string;
}
我想调用getTransactionDetails(1),将veggiesList中的所有Veggies元素转换为VeggieSummary并返回一个VeggieSummaryarray.
这就是我所拥有的
getTransactionDetails(1)
.flatMap(transactionDetails=>
transactionDetails.veggiesList
.map(veggie=>getVeggieSummary(veggie.id)))
.subscribe(result=>
console.log(result)
)
目前,result
是一个Observable<VeggieSummary>
,而内部可观测的甚至没有得到订阅...
我怎么能用rxjs操作符得到Observable<VeggieSummary[]>
?
注意:我的应用程序的Angular 版本不支持管道.RxJS版本是v5