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

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

本文关键字:变量 赋值 函数 回调 javascript 我可以      更新时间:2023-09-26

所以我正在为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);

因此,它始终返回1。这不应该在警报之前分配一个新值吗?如果做不到这一点,有什么方法可以从chrome.storage中提取一个值,以便在chrome.store.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);
});