function getBugVal() {
var bugVal = "";
chrome.storage.sync.get('bugId', function (obj) {
console.log(obj.bugId);
bugVal = obj.bugId;
console.log(bugVal + "<- val inside get sync");
});
console.log(bugVal + "<- val outside get sync");
return bugVal;
}
如果我调用getBugVal(),则返回值将始终指示空字符串,而不是chrome.storage.sync.get中的实际值。 bugVal甚至没有保存字符串值。
console.log(bugVal + "<- val inside get sync");
在内部函数调用中产生正确的值。想法?
答案 0 :(得分:2)
是的。这就是异步代码的工作原理。您必须使用回调。这样的事情可能会奏效。
function workWithBugVal(val) {
// Do stuff
}
function getBugVal(callback) {
var bugVal = "";
chrome.storage.sync.get('bugId', function (obj) {
console.log(obj.bugId);
bugVal = obj.bugId;
callback(bugVal);
});
}
getBugVal(workWithBugVal);