Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.05.2019, 17:15
Новичок на форуме
Отправить личное сообщение для Leoterno Посмотреть профиль Найти все сообщения от Leoterno
 
Регистрация: 02.05.2019
Сообщений: 2

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);


Вроде бы почитал про кэллбеки. И посмотрел на похожие проблемы. Всё таки вопрос заезженный. Но видимо мой мозг пэхапэшника отказывается воспринимать происходящее и я не могу никак подставить примеры под свою ситуацию.
Ну ткните носом, пожалуйста, как правильно обернуть, что бы выполнилось всё последовательно. Что б алерт сработал уже после записи в переменную. И что б дальше в коде я мог спокойно использовать эту переменную вне всяких функций.

Последний раз редактировалось Leoterno, 02.05.2019 в 17:22.
Ответить с цитированием
  #2 (permalink)  
Старый 02.05.2019, 20:12
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,794

Сообщение от Leoterno
И что б дальше в коде я мог спокойно использовать эту переменную вне всяких функций.
Не проще тогда в callback'е и писать код?

chrome.storage.local.get(['key'], function(result) {
    console.log('Value currently is ' + result.key);
    var valueStorage = result.key;

    alert(valueStorage);
    //do something else
});
Ответить с цитированием
  #3 (permalink)  
Старый 02.05.2019, 21:20
Новичок на форуме
Отправить личное сообщение для Leoterno Посмотреть профиль Найти все сообщения от Leoterno
 
Регистрация: 02.05.2019
Сообщений: 2

Спасибо за ответ. Да, сделал, работает. Думаю, это именно то, что мне нужно. Всё это странно, но с более изящными способами пока не хочу даже заморачиваться.
Ответить с цитированием
  #4 (permalink)  
Старый 02.05.2019, 23:17
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

>Вне всяких функций
Вот об этом забудь в js. Тут исполнение перетекает из функции в функцию из метода в метод.
Даже если обернуть в промис и заюзать await - всё равно придётся код обернуть в async функцию.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
еще один вопрос про кнопки и события f0rzik Общие вопросы Javascript 15 19.01.2013 23:19
Вопрос про change vitaly63 Общие вопросы Javascript 1 24.12.2012 10:50
Глупый вопрос про if then. Irish.Tippler Общие вопросы Javascript 9 26.07.2012 12:32
вопрос про анонимную функцию noname1990 Общие вопросы Javascript 6 19.06.2012 11:37
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06