web-dev-qa-db-fra.com

Comment attrapez-vous avec une pipe?

Comment puis-je effectuer les opérations suivantes avec des opérateurs louables et des tuyaux?

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

J'ai essayé, mais je n'arrive pas à faire fonctionner 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);

De plus, je suppose que catch et catchError sont les mêmes, n'est-ce pas? Je l'importe comme ça:

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

mais je ne savais pas si c'était le bon opérateur à utiliser.

8
Nxt3

Votre hypothèse est correcte, l'opérateur lettable catchError est le même que catch.

Quant au placement de catchError, il ne doit pas avoir de préfixe . et doit être placé entre 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