Как обрабатывать ошибки консоли (http) в Angular 8? - PullRequest
0 голосов
/ 06 февраля 2020

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

Компонент:

//app.component.ts
getUsersData() {
    this.userService.getUsers().subscribe(
      res => {
        this.data = res;
      }
    )
  }

Модуль: (предоставляется HttpInterceptor в поставщике модуля)

//app.module.ts
 providers: [
    {
      provide: HTTP_INTERCEPTORS,
      useClass: HttpErrorInterceptor,
      multi: true
    }
  ],

Перехватчик Http:

//http-error.interceptor.ts
import {
    HttpEvent,
    HttpInterceptor,
    HttpHandler,
    HttpRequest,
    HttpResponse,
    HttpErrorResponse
  } from '@angular/common/http';
  import { Observable, throwError } from 'rxjs';
  import { retry, catchError } from 'rxjs/operators';

  export class HttpErrorInterceptor implements HttpInterceptor {
    intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
      return next.handle(request)
        .pipe(
          retry(1),
          catchError((error: HttpErrorResponse) => {
            let errorMessage = '';
            if (error.error instanceof ErrorEvent) {
              // client-side error
              errorMessage = `Error: ${error.error.message}`;
            } else {
              // server-side error
              errorMessage = `Error Code: ${error.status}\nMessage: ${error.message}`;
            }
            window.alert(errorMessage);
            return throwError(errorMessage);
          })
        )
    }
  }

Ответы [ 2 ]

0 голосов
/ 06 февраля 2020

Я надеюсь, что все, что вам нужно, это скрыть данные консоли. В этом случае вы можете перезаписать функцию window.console.log. В вашем файле main.ts ,

if (window) {
   window.console.log = function () { };
}

Примечание: Это прекратит утешать что-либо в процессе, убедитесь, что вы закомментировали это в режиме разработки

0 голосов
/ 06 февраля 2020

Можете ли вы попробовать это?

subscribe(
   (response) => {
      this.repos = response;
   },
   (error) => {
      //Handle the error here
      //If not handled, then throw it
      throw error; 
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...