Доступ к службе EventEmitter внутри CustomHttp

Я создал пользовательский перехватчик для всех запросов Http:

import {EventEmitterService} from "./EventEmitter.service";

@Injectable()
export class CustomHttp extends Http {
    constructor(backend: ConnectionBackend, defaultOptions: RequestOptions, _eventEmitterService:EventEmitterService) {
        super(backend, defaultOptions);
    }
 get(url: string, options?: RequestOptionsArgs): Observable<Response> {
        return super.get(url,{headers: interceptorHeaders}).catch((res)=>{
            if (res.status === 403){
                console.log("Interceptor here")
                this._eventEmitterService.logout.emit("403");
            }
            return Observable.of(res);
        });
    }
}

Что отлично работает - всякий раз, когда я получаю 403 ответ от сервера, я получаю:

Interceptor here

в моей консоли.

Однако проблема с вводом EventEmitterService в функцию catch. Всякий раз, когда я нахожусь внутри него, я не могу получить доступ к CustomHttp - у меня есть доступ только к некоторым Observable, хотя, когда я отлаживаю свой конструктор, я вижу, что был добавлен EventEmitterService.

Вот как я вставляю EventEmitterService:

bootstrap(App,[...,
EventEmitterService,
    new Provider(Http, {
        useFactory: (backend: XHRBackend, defaultOptions: RequestOptions, _eventEmitterService:EventEmitterService) => new CustomHttp(backend, defaultOptions,_eventEmitterService),
        deps: [XHRBackend, RequestOptions,EventEmitterService]
    }),...]);

Ответ 1

Возможно, вы просто пропустили ключевое слово private на уровне параметра _eventEmitterService конструктора CustomHttp:

export class CustomHttp extends Http {
constructor(backend: ConnectionBackend,
            defaultOptions: RequestOptions,
            private _eventEmitterService:EventEmitterService) { // <----
  super(backend, defaultOptions);
}