Я делаю код обработчика ошибок, но получаю ошибку в catch. неопределенный метод.
Это мой код service.ts.
import { Injectable } from "@angular/core";
import { HttpClient, HttpErrorResponse } from "@angular/common/http";
import { user } from "./user";
import { Observable } from "rxjs";
import "rxjs/add/operator/catch";
import "rxjs/add/Observable/throw";
@Injectable({
providedIn: "root"
})
export class DemoService {
private url: string = "/assets/demo/user.json";
constructor(private http: HttpClient) {}
getuserdetails(): Observable<user[]> {
return this.http.get<user[]>(this.url).catch(this.errorHandler);
}
errorHandler(error: HttpErrorResponse) {
return Observable.throw(error.message || "server error.");
}
}
Это мой код файла app.component.ts
public userdetails = [];
public errorMsg;
constructor(private user: DemoService) {}
ngOnInit() {
this.user
.getuserdetails()
.subscribe(
$data => (this.userdetails = $data),
error => (this.errorMsg = error)
);
}
У меня ошибка в catch. и сообщение об ошибке: свойство «поймать» не существует для типа «наблюдаемый».