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");


在内部函数调用中产生正确的值。有什么想法吗?

最佳答案

是的这就是异步代码的工作方式。您将必须使用回调。这样的事情可能会起作用。

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);

关于javascript - Chrome.storage.sync.get不在本地变量中存储值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23179029/

10-11 23:43