Saltar al contenido

¿Cómo resolver el error de captura en Observable en angular 8?

Solución:

Puedes usar catchError en rxjs/operators para esto. Pruébelo de la siguiente manera.

import { catchError } from 'rxjs/operators';

export class DemoService {

    getuserdetails(): Observable<user[]> {
        return this.http.get<user[]>(this.url)
            .pipe(catchError(this.errorHandler))
    }
    errorHandler(error: HttpErrorResponse) {
        return Observable.throw(error.message || "server error.");
    }
}

La mejor manera de detectar errores en observables es:

this.http.get<user[]>(this.url).pipe(
   tap(),
   catchError(err => { return this.errorHandler(err) }
)

Si this.http.get() es una promesa, hazlo como lo hiciste en tu código .catch(...) está bien. Tratar de tener catchError(...) al final de la tubería o antes finalize(..) si lo usa.

Antes de que los Observables no tuvieran .pipe() y tú estabas encadenando operaciones como en Promises para que cambien de nombre .then() creo que flatMap() y .catch() para catchError() Entonces el programador sabe si es Observable o Promesa.

   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.");
      }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *