Как отлавливать ошибки в 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']);
также работает с резольверами.