web-dev-qa-db-ja.com

angular 8のObservableでキャッチエラーを解決するには?

エラーハンドラーコードを実行しましたが、catchでエラーが発生しました。未定義のメソッド。

これは私のserivce.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'がタイプ 'Observable'に存在しません。

5
Ashruti
   import { Observable, throwError } from 'rxjs';
   import { catchError, } from 'rxjs/operators';


    return this.http.get<user[]>(this.url).pipe(catchError(this.errorHandler))

      errorHandler(error: HttpErrorResponse) {
        return throwError(error.message || "server error.");
      }
1