我有一个奇怪的问题,我注意到当我使用chrome.storage.local.get
来显示它们时,内容脚本只使用alert
检索值(必须先以某种方式调用它们才能显示)对此的帮助将不胜感激。
var ref;
var max;
var min;
var disc;
chrome.storage.local.get([
'ref',
'max',
'min',
'disc'
], function(data){
ref = parseFloat(data.ref);
max = parseFloat(data.max);
min = parseFloat(data.min);
disc = parseFloat(data.disc);
console.log('Values Gotten');
});
function main() {
setTimeout(function(){refresh()},ref*1000);
}
function refresh(){
window.location = "-----some webpage------[its filled in actual code]";
}
答案 0 :(得分:1)
chrome.storage.local.get
调用是异步的,这意味着函数立即返回,稍后调用回调。
如果您在main
之后致电chrome.storage.local.get
,ref
仍然未定义,因为分配此变量的回调仍未执行。
要防止在main
变量被分配时需要致电ref
为此,您需要在回调中调用main
。
var ref;
var max;
var min;
var disc;
chrome.storage.local.get([
'ref',
'max',
'min',
'disc'
], function(data) {
ref = parseFloat(data.ref);
max = parseFloat(data.max);
min = parseFloat(data.min);
disc = parseFloat(data.disc);
console.log('Values Gotten');
main();
});
function main() {
setTimeout(function(){refresh()},ref*1000);
}
function refresh() {
window.location = "-----some webpage------[its filled in actual code]";
}