Как отлавливать ошибки в Angular 6?

Я не могу найти решение своей проблемы: как я могу отловить ошибки в Angular 6, если я использую средства распознавания? Мои резольверы обычно выглядят так:

  resolve(activatedRoute: ActivatedRouteSnapshot) {
    return this.rs.getRessources(activatedRoute.queryParams['branch']);
  }

В данных сервисах ошибки уже отлавливаются (сервисом) - почему это не работает при вызове сервиса из распознавателя; не из компонента? Какой лучший способ обнаружить ошибки в распознавателе перед загрузкой компонента?

Благодарен за любую помощь

1 ответ

Этот преобразователь выдает ошибки, если что-то пошло не так до загрузки компонента.

resolve(route: ActivatedRouteSnapshot): Observable<Initiative[]> {
    return this.actionItemService.getActionItems(route.params.id).pipe(
      catchError((error) => {
        this.alertifyService.error('Problem in resolving data');
        this.router.navigate(['/updateinitiative', route.params.id]);
        return of(null);
      })
    );
  }

Это может быть кому-то полезно.

Я заметил, что проблема в другом месте... ErrorHandler сервиса называется безаварийным распознавателем! Моя вина! Но:

Внутри ErrorHandler Я пытаюсь перейти на страницу с ошибкой. Это прекрасно работает, если служба используется компонентом и возникает ошибка. Если служба используется распознавателем, пересылка с this.router.navigate(['/error']); внутри моего ErrorHandler...

Я думаю, что это реальная проблема. Но почему?! Как я могу использовать this.router.navigate(['/error']); в ErrorHandler во время вызова из резольвера?


Решение:

После долгого времени я наконец-то нашел ошибку. Если у кого-то еще есть подобная проблема, вот мое решение.

Я забыл скинуть ошибку с return throwError(userMessage); после пересылки в моем ErrorHandler, Сейчас this.router.navigate(['/error']); также работает с резольверами.

Другие вопросы по тегам