RXJS 6: nueva versión de HttpInterceptor
Estoy en el proceso de agregarrxjs_compat
a mi proyecto para pasar a la v6 de las bibliotecas.
Sin embargo, el @ existenHttpInterceptor
para el manejo global de errores ya no se compila. No estoy seguro de a dónde ir con eso. Intenté todo tipo. Obteniendo desajustes de tipo con todo lo intentado.
import { Injectable } from "@angular/core";
import {
HttpEvent,
HttpInterceptor,
HttpHandler,
HttpRequest,
HttpResponse,
HttpErrorResponse
} from "@angular/common/http";
import { Observable, of, empty } from "rxjs";
import { ToastrService } from "ngx-toastr";
import { environment } from "../../environments/environment";
import { catchError, map } from "rxjs/operators";
@Injectable()
export class HttpErrorInterceptor implements HttpInterceptor {
constructor(private toastr: ToastrService) {}
intercept(
request: HttpRequest<any>,
next: HttpHandler
): Observable<HttpEvent<any>> {
return next.handle(request).pipe(
catchError(err => of(HttpErrorResponse)),
map(err => {
let message: string;
this.toastr.error(`${message}`, "Application Error");
return Observable.empty<HttpEvent<any>>();
})
);
}
}
src / app / shared / http-error-interceptor.ts (26,27): error TS2339: La propiedad 'vacía' no existe en el tipo 'typeof Observable'.
empty
ahora es una constante, pero no acepta un tipo, por lo que tampoco funciona. Además no pude encontrar mucho enlas notas de actualización
EDITA
although interesantemente esto compila:
return Observable.of<HttpEvent<any>>();