我想对来自不同服务的不同对象进行标记。
我的服务是这样的:
getEndPoint(base): Observable<any> {
return this.http.get(this.apiURL + '/latest?access_key=' + this.apiKey + '&base=' + base).pipe(
retry(1)
);
}
getLastPoint(base): Observable<any> {
return this.http.get(this.apiURL + '/2019-09-17?access_key=' + this.apiKey + '&base=' + base).pipe(
retry(1)
);
}
我的组件是这样的:
getSymbolDetail(base: string): void {
this.symbolService.getEndPoint(base).subscribe( data => {
this.symbolEndPoint = data;
});
this.symbolService.getLastPoint(base).subscribe(data => {
this.symbolLastDayPoint = data.rates.EUR;
console.log(this.symbolEndPoint);
});
}
我的错误是,当我两次运行同一个组件时,symbolEndPoint 可能是旧数据。那么我如何合并两个对象(symbolEndPoint 和 symbolLastDayPoint)?
我通过这篇文章解决了问题。
我像这样改变了我的服务。
getDetail(base): Observable<any> {
let getSymbols = this.http.get(this.apiURL + '/symbols?access_key=' + this.apiKey);
let getEndPoint = this.http.get(this.apiURL + '/latest?access_key=' + this.apiKey + '&base=' + base);
let getLastPoint = this.http.get(this.apiURL + '/2019-09-17?access_key=' + this.apiKey + '&base=' + base);
return forkJoin([getSymbols, getEndPoint, getLastPoint]);};
和我的组件:
getSymbolDetail(base: string): void {
this.symbolService.getDetail(base).subscribe(data => {
this.symbolName = data[0].symbols[base];
this.symbolEndPoint = data[1].rates.EUR;
this.symbolLastDayPoint = data[2].rates.EUR;
this.symbolDailyChange = (this.symbolEndPoint - this.symbolLastDayPoint).toString().substring(0, 8);
});}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句