Google chrome extension chrome扩展:获取存储值并传递给另一个函数
我使用Chrome.storage.local.get()从Chrome存储中获取一个值。我需要能够在函数中使用这个值 我真正想做的是在get函数之外访问_userid,但这不起作用:Google chrome extension chrome扩展:获取存储值并传递给另一个函数,google-chrome-extension,Google Chrome Extension,我使用Chrome.storage.local.get()从Chrome存储中获取一个值。我需要能够在函数中使用这个值 我真正想做的是在get函数之外访问_userid,但这不起作用: function my_f(userid){ alert("I'm called"); } var the_userid; chrome.storage.local.get('userid', function (result) { the_userid = userid.result; } m
function my_f(userid){
alert("I'm called");
}
var the_userid;
chrome.storage.local.get('userid', function (result) {
the_userid = userid.result;
}
my_f(the_user_id);
因此,我认为将函数my\u f传递是可行的:
function my_f(userid){
alert("I'm called");
}
chrome.storage.local.get('userid', function (result, my_f) {
var the_userid = userid.result;
my_f(the_user_id);
}
但我的f不叫
怎么办?在第二次尝试中,你几乎做到了。将调用移动到回调函数中的
my\u f
是正确的
但是,您在回调中声明了一个名为my_f
的参数,该参数从外部范围“隐藏”原始my_f
。由于chrome.storage.local.get
只将一个参数传递给其回调函数(您已将其命名为result
),因此其他参数都被赋值为未定义的。因此,变量my_f
在undefined
的回调中
相反,只需删除my\u f
参数:
chrome.storage.local.get('userid', function (result) {
var the_userid = userid.result;
my_f(the_user_id);
}
然后回调中的变量my\u f
将引用在外部范围中定义的my\u f
函数。在清单中?我已经做到了。我可以得到userid的值。我哪儿都不能用!