У меня был рабочий код, который вызывал метод logout () в случае ответа 401 от сервера.Поскольку я обновил Angular с 5.2 до 7.0.3, он больше не работает.Я думаю, что это должно быть что-то с измененным интерфейсом HttpInterceptor или множеством критических изменений rxjs.Прямо сейчас это выглядит так и выдает ошибку под кодом.
export class UnauthInterceptor implements HttpInterceptor {
private session: SessionProvider;
constructor(private injector:Injector) {}
intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
this.session = this.injector.get(SessionProvider);
return next.handle(request).pipe(catchError(err => {
if (err.status === 401) {
// auto logout if 401 response returned from api
this.session.logout();
}
})
);
}}
tsc выдает следующую ошибку:
src / app / interceptors / unauth.interceptor.ts:19:51 - ошибка TS2345: Аргумент типа '(err: any) => void' не может быть назначен параметру типа '(err: any, catch: Observable>) => ObservableInput <{}>'.
Тип 'void' нельзя назначить типу 'ObservableInput <{}>'.
19 return next.handle (request) .pipe (catchError (err => {
)