Проблема с прослушиванием события после выхода из системы (событие было запущено при входе в систему) - EventEmitter2 - PullRequest
1 голос
/ 07 августа 2020

У меня 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, но я не могу прослушать событие.

...