今天我的Ionic 2项目中有一个非常有趣的错误。我有Asp.net REST API。我打电话给提供商来休息api来获取机器。问题是它被映射为JSON,当我打印它的JSON格式时,它显示了Json对象数组。但是,在我订阅它之后,它显示未定义。
return this.http.get('http://localhost:19496/api/user(1982)/Machines',config).map(res=>console.log(res.json()));
没关系。但是当我订阅它时,它会返回未定义的数据:
subscribe(data=>{
console.log(data)
})
我没有更改代码。最近一周它正在运行,但是当我从假期返回时它没有用。
答案 0 :(得分:4)
根据我在问题中看到的内容,问题是您没有从map
返回任何内容:
return this.http.get('...',config)
.map(res=>console.log(res.json()));
这就是为什么订阅时会返回undefined
的原因。尝试在控制台中打印后返回响应:
return this.http.get('...',config)
.map(res => res.json())
.map(res => {
console.log(res);
return res; // <- Here! :)
});