我有以下代码
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;})();
除非我似乎也无法使它正常工作,否则它的真正含义是成为返回类型,因为我正在返回一个字符串,而且似乎也不接受。