错误TS2339:类型'Observable <response>'上不存在属性'map'

时间:2018-05-07 15:16:16

标签: javascript angular rxjs observable

我正在尝试从mongodb获取数据,我为此编写了一项服务。但我收到的错误如error TS2339: Property 'map' does not exist on type 'Observable<Response>'

请帮我解决此错误...

import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import 'rxjs/add/operator/map';

@Injectable()
export class DataService {

  result:any;

  constructor(private _http: Http) { }

  getUsers() {
    return this._http.get("/api/users")
      .map(result => this.result = result.json().data);
  }

}

1 个答案:

答案 0 :(得分:5)

您必须以不同方式导入和使用map运算符:

更改

import 'rxjs/add/operator/map';

import { map } from 'rxjs/operators';

然后,做

return this._http.get("/api/users")
      .pipe(map(result => this.result = result.json().data));

Vikas的附加建议

从Http服务迁移到HttpClient。见migration guide

  

要更新为HttpClient,您需要将HttpModule替换为   每个模块中来自HttpClientModule的{​​{1}},   注入@angular/common/http服务,并删除任何HttpClient   电话,不再需要。