【发布时间】:2021-11-01 08:01:09
【问题描述】:
有我的拦截器类,它应该检查错误状态是否为 401,如果是,它会从服务调用 signOut() 方法,如果不是什么也不做:
@Injectable()
export class MyErrorHandler implements ErrorHandler {
constructor(
private UserService: UserService,
) {
}
handleError(error) {
if (error?.status === 401) {
this.UserService.signOut();
}
}
}
有我的组件:
@Component({
...
})
export class CartTableComponent implements OnInit {
...
updateQuantity(i: number): void {
this.CartService.update(i).subscribe(data => {
...
})
}
}
所以它起作用了。 ErrorHandler 处理它。
然后我需要组件在收到错误时做一些事情,所以我在那里添加错误状态:
@Component({
...
})
export class CartTableComponent implements OnInit {
...
updateQuantity(i: number): void {
this.CartService.update(i).subscribe(data => {
...
}, error => {
console.log('Some text should be shown when the method receives the error');
throw new Error(error);
})
}
}
在我添加错误之后,ErrorHandler 不会处理错误。 handleError() 方法接收到 [Object object] 而不是 error 的 object 并且它无法读取 error?.status。
如何在组件中抛出错误并在 ErrorHandler 中处理?
【问题讨论】:
标签: javascript angular typescript error-handling interceptor