无法使用的可观察数据订阅
以下是我的API调用,我必须拦截器在两者之间,所以我正从localStorage的这个数据。数据被字符串化并保存。当我将它返回时,我通过observable.of(cachedata)转换为可观察的。无法使用的可观察数据订阅
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)not coming。
任何帮助将不胜感激。提前致谢。
我认为你有问题,你的代码 ,而不是这个
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()
将返回什么都is.try此服务器的响应,并让我知道,如果它的工作:)
它不工作,错误性质“订阅”不会对类型“无效”来 –
getApplications(用户名:字符串){存在 this.httpclient.get(this._getAPIUrl(“用户/” +用户ID +“/应用程序”) ) .MAP((RES:响应)=> res.json())}尝试this.for我的工作。 –
在我来说,我正在从本地存储这个对象,我是节约HttpResponse对象和检索回其保存在字符串。所以这里的问题是httpresponse对象不能保存为字符串格式,如果我这样做,它不能解析正常的对象。我得到无效的json转换为js对象。这是问题。 –
你的代码似乎在一定意义上有效,在认购的代码块应该叫一旦HTTP获得通话已成功解决。你在控制台中是否有任何错误? – Fjut