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

时间:2015-03-24 18:48:10

标签: javascript google-chrome google-chrome-extension

因此,我正在为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.storage.sync.get语句中使用外部回调函数?

1 个答案:

答案 0 :(得分:1)

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);
});