我使用Angular 2
。我也有StatisticsService
这种方法:
getComingStatistics(): Promise<Map<String, number>> {
const url = `${this.eventUrl}/rest/report/statistic/coming`;
return this.http.get(url)
.toPromise()
.then(response => {
return response.json().data as Map<String, number>
})
.catch(this.handleError);
}
我从一个组件进行此调用:
constructor(private statisticsService: StatisticsService) {}
comingStatistics: Map<String, number>;
allComingUsers: number;
ngOnInit(): void {
this.statisticsService.getComingStatistics().then(comingStatistics => {
console.log(comingStatistics);
console.log(comingStatistics.values());
});
}
问题出在这一行console.log(comingStatistics.values());
。我有这个例外:Uncaught (in promise): TypeError: comingStatistics.values is not a function
。
此地图的方法也不起作用(例如keys()
,forEach
等)。获取值只有一种方法:comingStatistics['someKey']
。
如何获取地图的所有键和值?
答案 0 :(得分:1)
键入断言作弊类型系统以使用
来考虑结果return response.json().data as Map<String, number>
但它并没有使data
对象成为地图。
它应该转换为Map
才能成为地图:
return new Map(Object.entries(response.json().data));