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)