глобальное состояние и назначение обратного вызова - PullRequest
0 голосов
/ 10 октября 2019

Я не понимаю, почему я не могу сохранить свой ответ на обратный вызов в глобальном состоянии var, которое я определил выше. Я храню его в ответе, но когда я вызываю его снаружи, он всегда возвращает undefined.

const state = {}    
    const initInfos = async () => {
        try {
                chrome.tabs.query({active: true, currentWindow: true}, (tabs) => {
                const message = {
                    name: 'loadInfos',
                    params: tabs[0]
                };
                Message.send(message, (res) => {
                    state.result = res.data; // store data in state.result
                     console.log(state.result) // display response from message
                });
            });
        }
        catch (e) {
            console.error(`error ${e}`);
        }
    };

    const controller = async () => {
        await initInfos();
        console.log(state.result); //display undefined
    };

    ['hashchange', 'load'].forEach((e) => window.addEventListener(e, controller));
...