Angular 如何将可观察值异步传递给多个可观察调用?
我想获取一个从一个可观察对象发出的值,并使用该值作为参数来进行两个http调用,然后订阅这两个调用的连接结果,尽管它不必连接。在本例中,我尝试使用.zip运算符,但似乎无法使其工作。只进行了.getSymbolData调用。我是否应该使用另一个操作员Angular 如何将可观察值异步传递给多个可观察调用?,angular,typescript,rxjs,observable,Angular,Typescript,Rxjs,Observable,我想获取一个从一个可观察对象发出的值,并使用该值作为参数来进行两个http调用,然后订阅这两个调用的连接结果,尽管它不必连接。在本例中,我尝试使用.zip运算符,但似乎无法使其工作。只进行了.getSymbolData调用。我是否应该使用另一个操作员 this.symbolSearchService.getSymbolData('cmcsa') .zip(stock => { console.log('stock', stock); <-- look
this.symbolSearchService.getSymbolData('cmcsa')
.zip(stock => {
console.log('stock', stock); <-- looks good
this.symbolSearchService.getResearchReportData(stock);
this.symbolSearchService.getPGRDataAndContextSummary(stock);
})
.subscribe(
res => {
console.log('res', res); <-- undefined
},
err => this.sharedService.handleError
);
编辑:
我忘了提到我想保留初始观测值。所以我想做这个。stock=stock某处。你要找的是switchMap和combineLatest操作符。它允许您返回一个新的可观察对象
this.symbolSearchService.getSymbolData('cmcsa')
.switchMap(stock => {
this.stock = stock;
return Observable.combineLatest(
this.symbolSearchService.getResearchReportData(stock),
this.symbolSearchService.getPGRDataAndContextSummary(stock)
})
.subscribe(
values => {
console.log('values', values);
},
err => this.sharedService.handleError
);
这是可行的,但我也想保留股票价值,所以我想要这个。股票=股票@第33周