0
내 Angular2 typescript 앱용 HttpClient를 만들고 있는데 오류 처리기가 작동하지 않습니다.Angular2 HTTP 클라이언트를 확장 할 때 rxjs 외부에서 메소드를 실행할 수 있습니까?
401 오류가 발생하면 이벤트를 내 보내고 오류는 catch 할 수 있지만 이벤트를 트리거하지는 않습니다. 왜냐하면 .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에 액세스하지 못할 알고 있지만 해결 방법은 무엇인가? 어떻게 이벤트를 거기에 삽입 할 수 있습니까?
완벽하게 답변했습니다! 매력처럼 일했습니다. 나는 함수 유형에 대해 너무 걱정했고 scope 살해 참조를 발견하지 못했습니다. 고맙습니다! 해결 됨으로 표시되었습니다. – gfviegas