web-dev-qa-db-ja.com

どのようにパイプでキャッチしますか?

Lettable演算子とパイプで次のことをするにはどうすればよいですか?

    this.httpClient
      .get(url)
      .map((res: any) => {
        const events = res.eventList;
        return events.map(e => new EventLogModel(e));
      })
      .catch(this.handleError);

私はこれを試しましたが、catchErrorを動作させることができません:catchError does not exist on type Observable<any>

    this.httpClient
      .get(url)
      .pipe(
        map((res: any) => {
          const events = res.eventList;
          return events.map(e => new EventLogModel(e));
        })
      )
      .catchError(this.handleError);

また、catchcatchErrorは同じであると思いますか?私はそれを次のようにインポートしています:

import { map, catchError } from 'rxjs/operators';

これが正しい演算子かどうかはわかりませんでした。

8
Nxt3

あなたの仮定は正しいです、lettable演算子catchErrorcatchと同じです。

catchErrorの配置については、プレフィックス.を付けず、pipe内に配置する必要があります。

this.httpClient
  .get(url)
  .pipe(
    map((res: any) => {
      const events = res.eventList;
      return events.map(e => new EventLogModel(e));
    }),
    catchError(this.handleError);
  )
15
AJT82