因此,我正在为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语句中使用外部回调函数?
答案 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);
});