使用chrome.storage.sync.get中的数据定义变量会导致其未定义?也许是由于将变量定义为函数时出错?

时间:2019-06-22 11:59:57

标签: javascript google-chrome storage

我有以下代码

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,第二个日志返回未定义的变量。我尝试创建一个函数来检索变量,它可以很好地检索变量,然后为其设置类别并返回类别。但这似乎在创建newUrl之后执行,无论我放在哪里。我可以在打开弹出窗口时检索它,但是我也想在单击按钮时得到它,否则用户可能会在打开弹出窗口和按下按钮之间进行更改。

是的,我敢肯定有一种简单的方法可以做到这一点,但是我对JS还是很陌生。预先感谢!

编辑:显然,在定义一个我搞砸了的变量时,发生了一些非常奇怪的事情。显然不是

var x = generateNewUrl(); 

或类似的东西,我必须做

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

除非我似乎也无法使它正常工作,否则它的真正含义是成为返回类型,因为我正在返回一个字符串,而且似乎也不接受。

0 个答案:

没有答案