以下是我的api调用,我之间有拦截器,所以我从localstorage获取这些数据。数据被字符串化并保存。当我返回它时,我将通过observable.of(cachedata)转换为observable。
getApplications(userid: string): Observable<any> {
let data =this.httpclient.get(this._getAPIUrl('user/' + userid + '/applications'))
.map((res: Response) => res.json())
return data;
}
我是从组件
中调用它的 ngOnInit() {
const userid = this.platformService.currentUserId;
console.log(this.platformService.getApplications(userid));
}
打印结果
Observable {_isScalar: false, source: Observable, operator: MapOperator}
如果我订阅此电话,则数据无法使用。
this.platformService.getApplications(userid)
.subscribe(applications => {
console.log('app ' + applications);
const menuItems: MenuItem[] = [];
menuItems.push(
new MenuHeaderItem({
type: MenuItemType.Header,
title: 'Applications',
description: null
}));
Object.keys(applications).map(element => {
menuItems.push(this.formatconversion(applications[element]));
});
this.menu = menuItems;
});
console.log(&#39; app&#39; +应用程序)没有到来。
任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:0)
我认为您的代码存在问题 而不是这个
getApplications(userid: string): Observable<any> {
let data =this.httpclient.get(this._getAPIUrl('user/' + userid + '/applications'))
.map((res: Response) => res.json())
return data;
}
使用此
getApplications(userid: string): Observable<any> {
this.httpclient.get(this._getAPIUrl('user/' + userid + '/applications'))
.map((res: Response) => res.json())
}
无需返回。
res.json()
将返回服务器响应的所有内容。请告诉我它是否工作:)