Я пытаюсь написать интерцептор, который предотвратит завершение работы скрипта в случае ошибки от сервера.
Так я вызываю метод сервиса в компоненте:
const res = await this.service.getLandingPage(url);
// do actions with res
console.log(res)
Сам метод сервиса:
async getLandingPage<T>(url: string): Promise<Page> {
return this.get<Page>(url,
{
observe: "response"
}
).toPromise();
}
Интерцептор:
return next.handle(request).pipe(
catchError((error: HttpErrorResponse) => {
this.log.error(error);
return EMPTY;
})
);
В данном случае если ответ от сервера успешный в
res приходит
HttpResponse как и ожидается, а если сервер ответил ошибкой то в res ничего (
undefined). Если же в интерцепторе вместо пустого
Observable вернуть error, то скрипт упадет и в компоненте до строки
console.log(res) сценарий так и не дойдет. Как сделать интерцептор так чтобы в приведенном случае, при ошибке от сервера в
res попадал
HttpErrorResponse а не
undefined?