[英]How to access data returning from an API Subscribe method outside in Angular
這是我的 angular 代碼塊。
demandCurveInfo = [];
ngOnInit() {
this.zone.runOutsideAngular(() => {
Promise.all([
import('@amcharts/amcharts4/core'),
import('@amcharts/amcharts4/charts'),
import('@amcharts/amcharts4/themes/animated'),
import('@amcharts/amcharts4/maps'),
import('@amcharts/amcharts4-geodata/worldLow'),
])
.then(modules => {
this.createDemandCurve(modules);
})
.catch(e => {
console.error('Error when creating chart', e);
});
});
}
這是我嘗試獲取 API 數據的地方。
async getDemandCurveInfo(statusType: string, valueType ) {
const params = [];
params.push({code: 'StreamCode', name: 'TG_PS'});
params.push({code: 'segmentCodes', name: ['US']});
params.push({code: 'checkinFrom', name: '2019-01-01'});
params.push({code: 'checkinTo', name: '2019-12-31'});
params.push({code: 'statusType', name: statusType});
params.push({code: 'valueType', name: valueType});
return await this.dashboardServiceHandler.getSegmentDemand([], params).toPromise();
}
在這個 function 中,我調用了上面的方法。
createDemandCurve(modules: any) {
const am4core = modules[0];
const am4charts = modules[1];
const am4themesAnimated = modules[2].default;
this.getDemandCurveInfo('REAL', 'TTV').then((data) => {
this.demandCurveInfo.push(data.valueOf().data);
console.log(this.demandCurveInfo[0]); <- first
});
console.log(this.demandCurveInfo[0]); <- second
}
在這里,我試圖在外部獲取this.demandCurveInfo[0]
數據。但是我的第二個 console.log 給出了 output,就像undefined一樣。第一個 console.log 給出了這樣的 output。 我怎樣才能在外面獲取 console.log 數據?。
您可以引入一種新方法來做到這一點
this.getDemandCurveInfo('REAL', 'TTV').then((data) => {
this.demandCurveInfo.push(data.valueOf().data);
printData(this.demandCurveInfo[0]);
});
printData(data: string){
console.log(data);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.