角度 2:属性'map'在类型 'Observable<Response>' 上不存在



我在发出 get 请求时收到以下错误。

模块"'node_modules/rxjs/Observable"'没有导出的成员'Observable'。 属性"map"在类型"可观察"上不存在。

我已经尝试了StackOverflow中提供的所有可能的解决方案,但它对我不起作用。

法典:

import { Injectable } from '@angular/core';
import { IEmployee } from './employee';
import { Http, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
@Injectable()
export class EmployeeService {
private  _url : string = 'apiData/employeedata.json'
constructor(private _http: Http) { }
getEmployees(): Observable<IEmployee[]> {
return this._http.get(this._url)
.map((response: Response) => <IEmployee[]>response.json());
}
}

您使用的是 Angular6而不是 Angular 2
您正在使用已用的HttpModule您应该改
HttpClientModule在新HttpClientModule中,JSON 是假定的默认值,不再需要使用res.json()
显式解析 在使用HttpClient之前,您需要将 AngularHttpClientModule导入根模块。

import { NgModule }         from '@angular/core';
import { BrowserModule }    from '@angular/platform-browser';
import { HttpClientModule } from '@angular/common/http';
@NgModule({
imports: [
BrowserModule,
HttpClientModule,
],
//.......

您可以HttpClient告诉响应的类型,以使输出的使用更轻松、更明显。

可以使用类型参数对响应进行类型检查

Http返回一个observable,我们可以告诉HttpClient.get以 IEmployee 类型返回response当我们使用http.get<IEmployee[]>(...)时,它会返回Observable<IEmployee[]>类型的实例。

在您的组件中subscribeObservable<IEmployee[]>以获取 IEmployee

的实例

在您的服务

import { Injectable } from '@angular/core';
import { IEmployee } from './employee';
import { HttpClient} from '@angular/common/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class EmployeeService {
private  _url : string = 'apiData/employeedata.json'
constructor(private _http: HttpClient) { }
getEmployees(): Observable<IEmployee[]> {
return this._http.get<IEmployee[]>(this._url);
}
}

除此之外,RxJS v5.5.2+已移至管道运算符,以改善树木摇动并更轻松地创建自定义运算符

新导入

import { map} from 'rxjs/operators';

并更改.map(...) to .pipe(map(..))
PS:如果您使用的是修改HttpClientModule
代码,则不需要

return this._http.get(this._url).pipe(
map((response: Response) => <IEmployee[]>response.json()));

我建议您停止使用HttpModule,而是选择HttpClientModule

相关内容

最新更新