我可以在 javascript 的回调函数中为变量赋值吗?

Can I assign a variable a value within a callback function in javascript?

所以我正在为 Chrome 整理一个转换扩展程序,但在从存储中提取数据时遇到了问题。这是我拥有的:

var conversionFactor = 1;
        chrome.storage.sync.get("conversion", function(fetched) {
            var tempCon = fetched.conversion;
            if(tempCon.includes('toKG')) {
                conversionFactor = 0.45;
            } 
            else {
                conversionFactor = 2.2;
            }
        });
    alert(conversionFactor);

所以这始终如一returns 1.这不应该是在警报之前分配一个新值吗?如果做不到这一点,有什么方法可以从 chrome.storage 中提取一个值,以便在 外部 chrome.storage.sync.get 语句中的回调函数中使用?

chrome.storage.sync.get 是一个异步操作。将警报移动到回调函数中,您将看到正确的值。

chrome.storage.sync.get("conversion", function(fetched) {
    var tempCon = fetched.conversion,
        conversionFactor;
    if(tempCon.includes('toKG')) {
        conversionFactor = 0.45;
    } 
    else {
        conversionFactor = 2.2;
    }
    console.log(conversionFactor);
});