如何修复此本地数据问题?(Chrome扩展、Javascript、jQuery)



我试图将本地数据保存在chrome扩展中,但它不起作用。"getData"函数一直返回未定义的值。我做错了什么?是的,我在清单中的权限下确实有"存储"。

var storage = chrome.storage.local
var getData = function(key) {
    var give;
    storage.get(null, function(objects) {
        $.each(objects, function(index, value) {
            if (index == key) { 
                give = value
                console.log(value) //OUTPUT: Hello!
            }
        })
    })
    return give
}
storage.set({"test" : "Hello!"})
console.log(getData("test")) //OUTPUT: undefined

使用回调函数,方法如下:

var storage = chrome.storage.local;
var getData = function(key, callback) {
    storage.get(null, function(objects) {
        $.each(objects, function(index, value) {
            if (index == key) { 
                callback(null, value);
            }
        });
    });
};
storage.set({"test" : "Hello!"});
getData("test", function (err, data) { // err will be null
    console.log(data); // "Hello!"
});

什么是回调函数?

最新更新