Subscribe方法将json对象返回为undefined

时间:2017-06-28 13:19:33

标签: angular typescript ionic2 ionic3

今天我的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()));

它显示为: enter image description here

没关系。但是当我订阅它时,它会返回未定义的数据:

subscribe(data=>{
    console.log(data)
  })

我没有更改代码。最近一周它正在运行,但是当我从假期返回时它没有用。

1 个答案:

答案 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! :)
           });