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