javascript - 如何从 RxJs 中的 flatMap 返回附加值
问题描述
我需要从下面的设置中返回一个除 Observable 之外的附加值,key
字符串:flatMap
this.subscribeInit = this.tradingService.getInProgress()
.pipe(flatMap((s) => {
this.keys = s.map((tdi) => tdi.key);
return this.keys;
}),
flatMap((key) =>{
var res = this.tradingService.getTradingData(key);//returns `Observable<any>`
return res;
}))
.subscribe(res => {
console.log('Key is : ' + res.key);
},
undefined,
() => this.onComplete());
就像是:
flatMap((key) =>{
var res = this.tradingService.getTradingData(key);
return {res,key};
}))
如何做到这一点?
解决方案
只需使用地图...
flatMap((key) =>{
return this.tradingService.getTradingData(key).pipe(map((res) => {
return {res,key};
}));
}))
ps:我有点困惑:不是 flatMap 已弃用并替换了我的 mergeMap、switchMap、...?
编辑:显然问题是由使用 flatMap 而不是 mergeMap 引起的。