Могу ли я повторно использовать угловой http-перехватчик для 500?

#angular #angular-http-interceptors

#угловой #угловые http-перехватчики

Вопрос:

У меня есть http-перехватчик, который будет перехватывать 500 ошибок и отображать диалоговое окно для пользователя. Ниже приведен фрагмент моего кода перехватчика:

 intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    ....
    return next.handle(request).pipe(catchError(error => {
        // intercept the respons error

        this.handleAuthError(error, request); // pass error to function
        return of(error.error);
    }) as any, finalize(() => {
          this.counter;
        this.enableSubmissionButton(this.counter);
    }));
}

private handleAuthError(err: HttpErrorResponse, request: HttpRequest<any>): Observable<HttpEvent<any>> {
    // handle your auth error or rethrow
    let errorMessage: any = '';

    if (err.error instanceof ErrorEvent) {
        errorMessage = `Error: ${err.error.message}`;
    } else {
        errorMessage = `Error Code: ${err.status}nMessage: ${err.message}`;
        if (err.status === 401 || err.status === 403) {
            this.userAuthService.purgeAuth();
        } else if (err.status === 500 || err.status === 404) {
            this.dialog.open(MessageDialogComponent, {
                disableClose: true,
                data: err.error.Message || `${err.status} ${err.statusText}`,
            });
        }
    }
    return throwError(errorMessage);
}
  

Я вношу некоторые изменения в один из моих вызовов API в компоненте, и теперь я хочу знать, есть ли какая-либо ошибка http при вызове API.

 this.subscription.add(
        url.subscribe(data => {
            if (data.Status) {
                // Save was successful.
            } 
        }, err => {
            console.log(err);
        })
    );
  

Очевидно, что вышеупомянутая консоль.регистрация не произойдет, так как http-перехватчик позаботится об этом.
Что я могу сделать, чтобы проверить, была ли (например) ошибка 500 в моем запросе выше, даже если http-перехватчик обработал ее. Мне нужно запустить какой-то конкретный код, если в этом запросе есть какие-либо подобные ошибки