RXJS 6: nova versão do HttpInterceptor
Estou no processo de adicionarrxjs_compat
ao meu projeto para passar para a v6 das bibliotecas.
No entanto, a existenteHttpInterceptor
para o tratamento global de erros não é mais compilado. Não tenho certeza para onde ir com ele. Tentei todos os tipos. Obter incompatibilidades de tipo com tudo o que foi experimentado.
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): erro TS2339: A propriedade 'vazia' não existe no tipo 'typeof Observable'.
empty
agora é uma constante, mas não aceita um tipo, portanto isso também não funciona. Também não consegui encontrar muito emas notas de atualização
EDITAR
embora curiosamente isso compile:
return Observable.of<HttpEvent<any>>();