【发布时间】:2016-09-29 22:05:53
【问题描述】:
我正在为我的 Angular2 打字稿应用程序创建一个 HttpClient,但我被困在错误处理程序中。
我想在捕获 401 错误时发出事件,并且我能够捕获错误但不能触发我的事件,因为 .catch 需要附加到 Observable 类型的函数,所以我不可以访问我的 HttpClient 类 this 范围。
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,但是解决方法是什么?如何在那里注入事件?
【问题讨论】:
标签: typescript angular rxjs ionic2 angular2-http