Angular 使用路由解析器处理错误

Angular 使用路由解析器处理错误,angular,angular-routing,Angular,Angular Routing,我正在使用一个简单的路由解析器在用户访问页面之前加载数据: resolve( route: ActivatedRouteSnapshot, state: RouterStateSnapshot ): Observable<any>|Promise<any>|any { return this.summaryService.getAllAnalytics(); } 页面保持不变。我不知道如何处理我得到的错误。如果您的服务返回一个承诺,那

我正在使用一个简单的路由解析器在用户访问页面之前加载数据:

resolve(
    route: ActivatedRouteSnapshot,
    state: RouterStateSnapshot
  ): Observable<any>|Promise<any>|any {
      return this.summaryService.getAllAnalytics();
  }

页面保持不变。我不知道如何处理我得到的错误。

如果您的服务返回一个承诺,那么您可以使用该方法,如果它返回一个可观察的,那么使用该方法

在catch内,您可以记录错误或/和重定向到错误页面或/和重定向到其他地方

在可观察的情况下,它看起来像这样:

从“rxjs/observable/of”导入{of};
导入“rxjs/add/operator/catch”;
...
决心(
路由:ActivatedRouteSnapshot,
状态:RouterStateSnapshot
):可观察的|承诺|任何{
返回此.summaryService.getAllAnalytics()
.catch(错误=>{
控制台错误(err);
返回();
});
}

您是否尝试在您的route guard上实现
CanActivate
?谢谢,似乎我必须
导入'rxjs/add/operator/catch'。是的。如果你不想把所有的操作员都包括在你的包中,这是一个正确的方法。@TheUnreal如果我的答案对你有帮助,请把它标记为正确答案,这样其他人也可以更快地坚持下去。
Error: Uncaught (in promise): [object Object]