Angular intercept catcherror также перехватывает другие ошибки, помимо 404, и мешает приложению работать как есть - PullRequest
0 голосов
/ 28 мая 2020

У меня есть перехватчик, который ловит 404 ошибки

перехват (req: HttpRequest, следующий: HttpHandler): Observable> {

    return next.handle(req).pipe(retry(1),
    catchError((error) => { // catch error after retry
        console.log('err');
        if (error instanceof HttpErrorResponse) {
            if (error.status === 404) {
                console.log('errrr');
            }
        }
}

проблема в том, что ошибка НЕ ​​404 ошибка приложения перестать работать должным образом после того, как я обнаружил ошибку 422. Приложение должно продолжать работать как есть, если ошибка не 404 .. Я думаю, что это как-то связано с ловушкой, но я потерялся. Я ценю любую помощь.

1 Ответ

0 голосов
/ 13 августа 2020

catchError все еще должен что-то вернуть. если он не возвращает наблюдаемый объект, вы, вероятно, получаете сообщение об ошибке.

измените его на это, чтобы обрабатывать 404, но все остальное возвращается

catchError((error) => { // catch error after retry
    console.log('err');
    if (error instanceof HttpErrorResponse) {
        if (error.status === 404) {
            console.log('errrr');
            return EMPTY;
        }
    }
    throw error;

}

...