我遇到了一个问题,无法捕获AuthHttpError
从对 in 的调用返回AuthHttp
的内容angular2-jwt
。
每当AuthHttp
检测到令牌过期时,它会抛出AuthHttpError
而不向后端发送请求。我想捕捉这个错误,以便我可以注销用户。但是,我似乎无法在Observable.catch()
.
假设我有这样的代码:
doRequest(url: string, params: string, jsonOptions: string) {
return this.http.post(url, params, jsonOptions)
.catch(response => {
if (response instanceof Response) {
console.info('handle server errors');
} else if (response instanceof AuthHttpError) {
console.info('handle AuthHttpError');
} else {
console.info('handle other Error')
}
return Observable.throw(response);
})
}
在这种情况下,如果令牌已过期,我希望控制台打印“处理 AuthHttpError”,但它会打印“处理其他错误”。我还注意到,在这种情况下,response.constructor.name
将是“Error”而不是“AuthHttpError”。
有谁知道是否有办法捕捉这个错误?