【发布时间】:2017-09-04 13:11:23
【问题描述】:
以下是我的 api 调用,中间有拦截器,所以我从本地存储中获取这些数据。数据被字符串化并保存。当我返回它时,我通过 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('app' + applications) 不来。
任何帮助将不胜感激。提前致谢。
【问题讨论】:
-
您的代码似乎有效,因为一旦成功解决了 http get 调用,就应该调用 subscribe 块中的代码。您是否在控制台中遇到任何错误?