Я хочу трактовать определенные коды ошибок HTTP как не связанные с ошибками и нормально обрабатывать их ответы. Поэтому я попытался добавить HttpInterceptor
, чтобы перехватить 500 кодов состояния и вернуть исходный ответ (который Angular вставляет error.error
):
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
return next.handle(req).pipe(
catchError((error: HttpErrorResponse) => {
if (error.status === 500) {
return of(error.error);
} else {
return throwError('server error');
}
})
);
}
Но тогда, если есть ошибка, все, что я был передан в мой http-запрос не выполняется. Например, если я сделаю это, оператор log не произойдет:
this.http.get(...).pipe(
tap(console.log)
)
Как мне сделать эту работу?
Вот образец ... он никогда не регистрирует «полученный результат» от AppComponent.