chrome.storage вопрос про callback'и
Обычное дело. Пишу расширение для Хрома, однако до этого на JS ничего не писал. Поэтому сталкиваюсь с особенностями языка.
Использую хромовское хранилище, а API хрома работает асинхронно, в следствии чего алерт срабатывает ещё до того, как в переменную запишется значение (Если я правильно всё понимаю). Нужно запихнуть значение этой структуры в переменную, что бы дальше с ней работать: var valueStorage function getStorage() { chrome.storage.local.get(['key'], function(result) { console.log('Value currently is ' + result.key); valueStorage = result.key; }); } getStorage(); alert (valueStorage); Вроде бы почитал про кэллбеки. И посмотрел на похожие проблемы. Всё таки вопрос заезженный. Но видимо мой мозг пэхапэшника отказывается воспринимать происходящее и я не могу никак подставить примеры под свою ситуацию. Ну ткните носом, пожалуйста, как правильно обернуть, что бы выполнилось всё последовательно. Что б алерт сработал уже после записи в переменную. И что б дальше в коде я мог спокойно использовать эту переменную вне всяких функций. |
Цитата:
chrome.storage.local.get(['key'], function(result) { console.log('Value currently is ' + result.key); var valueStorage = result.key; alert(valueStorage); //do something else }); |
Спасибо за ответ. Да, сделал, работает. Думаю, это именно то, что мне нужно. Всё это странно, но с более изящными способами пока не хочу даже заморачиваться.
|
>Вне всяких функций
Вот об этом забудь в js. Тут исполнение перетекает из функции в функцию из метода в метод. Даже если обернуть в промис и заюзать await - всё равно придётся код обернуть в async функцию. |
Часовой пояс GMT +3, время: 11:33. |