Error : .map() is not a function

Error : .map() is not a function

正在尝试从组件订阅已解析的 HTTP - GET 响应。收到一条错误消息说 .map 不是一个函数,无论是从 HTTPService 还是从组件 class.

Httpdemo.getResponse().map(res => res.json()).subscribe((cities)=>{ 
   this.cities = cities.cities;          
   console.log(this.cities);
});

但以下有效:

Httpdemo.getResponse().subscribe((cities)=>{ 
    this.cities = JSON.parse(cities._body).cities;          
    console.log(this.cities);
});

解析在Httpdemo服务中也不起作用。

return this.http.get('./app/cities.json').map(res => res.json())

我的代码中这里的用法有什么问题?

您需要为 Observable 导入地图运算符,如下所述:

import 'rxjs/add/operator/map';

默认情况下,并非所有运算符都包括在内。

有关详细信息,请参阅此答案:

一般来说,如果您对 load/target 个别 Rxjs 运算符不感兴趣,我建议导入以下库。

使用,

import 'rxjs/Rx';