javascript - 类型 'catch' 上不存在属性 'Observable<IEmployee[]>'

标签 javascript angular

<分区>

我是 Angular 的新手。目前我正在学习 angular 6 功能。 当我尝试处理错误时,会出现一些问题,例如,

Module not found: Error: Can't resolve 'rxjs/add/observable/throw' in 'D:\WORKSPACE\Angular5\binding\src\app'

Module not found: Error: Can't resolve 'rxjs/add/operator/catch' in 'D:\WORKSPACE\Angular5\binding\src\app'

ERROR in src/app/employee.service.ts(20,14): error TS2339: Property 'catch' does not exist on type 'Observable'

这是我的 employee.service.ts

import { Injectable } from '@angular/core';
import { HttpClient, HttpErrorResponse } from '@angular/common/http';
import { IEmployee } from './employee';
import { Observable } from 'rxjs';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';

//It self injectable defendency.
@Injectable({
  providedIn: 'root'
})
export class EmployeeService {

  private _url: string = "/assets/data/employees.json";

  constructor(private http: HttpClient) { }

  getEmployees(): Observable<IEmployee[]>{
    return this.http.get<IEmployee[]>(this._url)
            .catch(this.errorHandler);                    
  }

  errorHandler(error: HttpErrorResponse){
      return Observable.throw(error.message || "Server Error");
  }
}

员工.ts

export interface IEmployee{
    id : number,
    name : String,
    age : number
}

我尝试使用下面的链接解决这个问题。但是我无法得到我的问题的答案。

Property 'catch' does not exist on type 'Observable'Angular HTTP GET with TypeScript error http.get(…).map is not a function in [null]

请给我一些解决方案。谢谢。

最佳答案

在 angular 6 中,我们使用 rxjs 6,您的示例适用于旧版本的 angular,您可能需要阅读更多关于 rxjs 6 的信息

试试这个方法

  getEmployees(): Observable<IEmployee[]>{
    return this.http.get<IEmployee[]>(this._url)
               .pipe(catchError(this.handlerError));
   }

catch / catchError , RxJS 6 Changes

关于javascript - 类型 'catch' 上不存在属性 'Observable<IEmployee[]>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53116431/

相关文章:

javascript - 使用 ZombieJS 从异步点击事件触发的 Ajax 获取 Http 错误

javascript - 从 ngstorage 绑定(bind)到下拉菜单

angular - 使用 ng-zorro 构建动态菜单

Angular Material 不会通过 ng add 进行安装

javascript - 子组件之间的通信 - 触发和更改

angular service-worker - 处理推送通知点击

javascript - 如何将缓存图像显示到html div对象中

javascript - 将数据添加到数组的 Javascript 数组

javascript - 上传图片后如何添加类?

angular - 无法通过 Matomo/Piwik 跟踪 Angular 8 中的路线变化