У меня 4 файла:
AuthenticationUtil. js запускает событие, когда я вхожу в систему и выхожу из системы. Затем он вызывает каждую функцию authStatusListeners:
const authUtilEmitter = new EventEmitter.EventEmitter2({
wildcard: true,
delimiter: '::',
maxListeners: 0
});
// METHODS
function emitLoginEvent(userData, oAuthConfig) {
userData.user_name = userData[oAuthConfig.usernameProperty];
const authData = {
isLoggedIn: true,
userData: userData
};
_emitLoginStateChangeEvent(authData);
}
function emitLogoutEvent(evtData) {
const authData = {
isLoggedIn: false,
userData: null,
evtData
};
loginResult = q.defer();
loginResult.reject();
_emitLoginStateChangeEvent(authData);
}
function _emitLoginStateChangeEvent(authData) {
authUtilEmitter.emit('loginState::change', authData);
authStatusListeners.forEach(listener => listener(authData));
}
У меня есть служба AuthenticationService. js для регистрации слушателей:
function addLoginStateChangeListener(listener) {
authStatusListeners.push(listener);
}
И у меня есть файл OAuthUtil. js, в котором мне нужно прослушать событие:
function getAuthorizeUrl() {
AuthenticationService(oAuthConfig).addLoginStateChangeListener((authData) => {
console.log('Good work!');
});
}
Когда я вхожу в систему, я смог распечатать сообщение в консоли. Проблема в том, что когда я выхожу из системы, было запущено 'loginState :: change', был выполнен выход из системы, и я вошел в getAuthorizeUrl, но я не могу прослушать событие.