在Angular中处理错误的最佳方法是什么

时间:2019-06-12 17:32:15

标签: angular

我正在从事Angular项目,对它来说还很新。我想知道的是,处理错误并将错误报告给用户的最佳实践是什么。我已经在Google周围搜索了一下,但没有找到很多确定的信息,所以也许值得商??

无论如何,我有返回观察值的服务,并且组件订阅了这些服务方法。对于直接可观察到的,pipe运算符有一个catchError处理程序可以捕获错误,但是subscribe也有一个错误处理程序。那我该用哪个呢?还是两者都有?

最好有一个只返回可观察到的非管道服务的服务(除非我需要管道来映射或其他东西),然后让订阅处理组件上的错误,还是应该在管道中捕获错误?而不是订阅级别?

第一个看起来像这样:

服务返回可见

GetUserById(id: string): Observable<User> {
  return this.http.get<User>(ApiData.baseUrl + `/user/${id}`);
}

组件中的订阅

this.userService.GetUsers().subscribe(
  users => *do whatever with it*,
  error => this.handleError<User>('Get User by Id', null)
);

第二个是这样的:

服务返回可见

GetUserById(id: string): Observable<User> {
  return this.http.get<User>(ApiData.baseUrl + `/user/${id}`).pipe(
    catchError(this.handleError<User>('Get User by Id', null))
  );
}

组件中的订阅

this.userService.GetUsers().subscribe(users => *do whatever with it*);

引用的“ HandleError”方法当前仅登录到控制台,并向用户显示错误通知。

这些针对Angular的反模式之一吗?是否有最佳方法达成共识?

0 个答案:

没有答案