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

GAJ*_*HAV 3 javascript observable rxjs angular

我正在尝试从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);
  }

}
Run Code Online (Sandbox Code Playgroud)

Kim*_*ern 6

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

更改

import 'rxjs/add/operator/map';
Run Code Online (Sandbox Code Playgroud)

import { map } from 'rxjs/operators';
Run Code Online (Sandbox Code Playgroud)

然后做

return this._http.get("/api/users")
      .pipe(map(result => this.result = result.json().data));
Run Code Online (Sandbox Code Playgroud)

来自Vikas的Addiontal建议

从Http服务迁移到HttpClient.请参阅迁移指南

要更新到HttpClient,您需要在每个模块中替换HttpModuleHttpClientModulefrom @angular/common/http,注入HttpClient服务,并删除map(res => res.json()) 不再需要的任何调用.