我找不到解决问题的方法:如果使用解析器,如何在Angular 6中捕获错误?我的解析器通常看起来很简单:
resolve(activatedRoute: ActivatedRouteSnapshot) {
return this.rs.getRessources(activatedRoute.queryParams['branch']);
}
在给定的服务中,错误已被(服务)捕获-为什么在从解析器调用服务时,此错误不起作用;不是来自组件? 在加载组件之前 ,检测旋转变压器中错误的最佳方法是什么?
感谢您的帮助
答案 0 :(得分:0)
我注意到问题出在其他地方...服务的ErrorHandler
被解析器称为无故障!我的错! 但是:
我正在ErrorHandler
内导航到错误页面。如果该服务被组件使用并且发生错误,那将很好地工作。如果该服务由解析器使用,则我的this.router.navigate(['/error']);
内的ErrorHandler
不会转发...
我认为那是真正的问题。但为什么?!从解析器调用this.router.navigate(['/error']);
时如何使用ErrorHandler
中的return throwError(userMessage);
?
解决方案:
经过很长时间,我终于发现了错误。如果其他人有类似的问题,这是我的解决方案。
在转发ErrorHandler
后,我忘了抛出this.router.navigate(['/error']);
错误。现在[x[0] for x in os.walk(dir)]
也可以与解析器一起使用。
答案 1 :(得分:0)
如果在加载组件之前出现问题,此解析器将引发错误。
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);
})
);
}
这可能对某人有所帮助。