У меня есть сервис, который вводит мой AuthenticationService
. В этой службе я запускаю сторонний клиент для машинописи и регистрирую метод внутри службы в качестве обработчика исключений.
Моя проблема в том, что когда обработчик исключений вызывается, AuthenticationService
становится неопределенным. Я установил точку останова в конструкторе и вижу, что переменная _auth
заполнена правильно. Но когда вызывается обработчик исключения, он не определен. Я попытался установить его как свойство, но такое же поведение происходит.
Это мой сервис:
@Injectable({
providedIn: 'root'
})
export class DomainAlertsService {
client : JsonServiceClient;
constructor( private _auth: AuthenticationService ) {
this.client = new JsonServiceClient(environment.apiUrl);
this.client.exceptionFilter = this.exceptionHandler;
}
exceptionHandler(ex : Response)
{
if(ex.status == 401)
{
this._auth.logout(); // _auth is now undefined
location.reload(true);
}
else{
console.log("unhandled exception");
console.log(ex);
}
}
//.. other methods removed
}
Я представляю, что это какая-то проблема, но я не уверен, что происходит. Почему _auth
не определено при вызове exceptionHandler()
метода?