Определение переменной с данными из chrome.storage.sync.get оставляет ее неопределенной. Может быть, из-за ошибок в определении переменной как функции? - PullRequest
0 голосов
/ 22 июня 2019

У меня есть следующий код

function generateNewUrl(){
 console.log("Method generatreNewUrl() has been called")
 chrome.storage.sync.get(['categorySave'], function(data_1){
   category = data_1.categorySave;
   console.log("Popup.js; Retrieved category data : " + category);
   ##^This console.log returns the correct value
 });
 //category = returnCategory();
 baseUrl = 'http://www.awebsite.com/';
 console.log("Returned category is : " + category)
 newUrl = baseUrl + category;
 return newUrl;
 }

Первый журнал возвращает правильную переменную A, где второй журнал возвращает значение Undefined.Я попытался создать функцию, которая извлекает переменную, которую она получает просто отлично, затем устанавливает категорию для нее и возвращает категорию.Но это похоже на выполнение ПОСЛЕ создания newUrl независимо от того, где я его поместил.Я могу получить его при открытии всплывающего окна, но я хочу получить его и при нажатии кнопки, иначе пользователь может изменить параметры между открытием всплывающего окна и нажатием кнопки.

Так что да, яЯ уверен, что есть простой способ сделать это, но я довольно плохо знаком с JS.Заранее спасибо!

РЕДАКТИРОВАТЬ: Очевидно, что некоторые действительно странные вещи происходят при определении переменной, которую я испортил.Очевидно, вместо того, чтобы делать

var x = generateNewUrl(); 

или что-то подобное, я должен сделать что-то вроде

var x = (generateNewUrl(){return true;})();

За исключением того, что я тоже не могу заставить это работать, это истинное предназначениетип возвращаемого значения, потому что я возвращаю строку, и она, кажется, не принимает это.

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