Запуск асинхронной функции в js перед событием выгрузки - PullRequest
0 голосов
/ 06 августа 2020

Я делаю расширение chrome и хочу предупредить пользователя, прежде чем он покинет страницу. Я могу сделать это в событии beforeunload; но мне нужно проверить переменную в локальном хранилище, чтобы решить, показывать ли подсказку или нет. Но поскольку chrome.storage.local.get является asyn c, код продолжит выполнение, прежде чем я смогу проверить эту переменную. Это мой код:

window.addEventListener('beforeunload', function (e) {
    chrome.storage.local.get('state',function(val){
        if(val.state==='syncing'){
            e.preventDefault();
            e.returnValue = '';    
        }
    })
});

Есть ли способ заставить эту chrome.storage.local.get функцию работать синхронно? Или есть другие решения?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...