我正在为我的 Angular2 打字稿应用程序创建一个 HttpClient,但我陷入了错误处理程序。
我想在捕获 401 错误时发出事件,并且我能够捕获错误但不能触发我的事件,因为 .catch 需要附加到 Observable 类型的函数,所以我无法访问我的 HttpClient 类这个范围。
errorHandler (error:any) : Observable<any> {
if(error.status == 401) {
// I want to call this.myOtherMethod() here!
this.events.publish('token_expired'); // Will throw this.events is undefined
console.log(error);
}
return Observable.throw(error.json());
}
get(url) : Observable<any> {
return this.http.get(url, {
headers: this.customHeaders
}).catch( this.errorHandler );
}
所以我知道我无法从这个函数内部访问我的 this.events,但是解决方法是什么?我怎样才能在那里注入事件?