chrome.storage集\\得到澄清(chrome.storage set\\get clar

2019-07-19 00:45发布

我想保存的信息在我的extenstion。 我用Chrome.storage.sync要做到这一点,但是当我保存后没有看错我无法正确地检索值。 可能做一些愚蠢的....我试图清理与本地存储chrome.storage.sync.clear但这并没有帮助。

我的保存功能是(看了如何目前做的):

save: function (type, key, data) {
    Storage.storageOption(type).set({key:data}, function () {
        console.log("saved data");
    });

load: function (type, key) {
    Storage.storageOption(type).get(key, function (object) {
        console.log("read : " +object);
        return object[key];
    })}

并调用它:

Storage.save("", 'path',username);
console.log(Storage.load("",'path'));

这导致了这一点:

保存数据

未定义

读:[对象的对象]


更新:

OK,显然存在我如何传递对象的键值对,因为当我把它称为这样的问题: chrome.storage.sync.set({'path':username}, function(){});

打印在一个更好的控制台输出结果存储:

未定义

夏嘉曦

还不能确定这不确定的是什么...


更新2:

在成功写入存储,试图读取它的时候准备的文件被激活。 使用下面的代码:

var dbdata = chrome.storage.sync.get("path",function(object){
    return object['path'];
});

然而,功能的身体不被执行,虽然文件说,它会在任何情况下运行,在出现错误的情况下设置lastError。

有什么建议?

Answer 1:

从功能传递给chrome.storage.sync返回的值不会做你期望的。 该值仅在回调中可用。 它不会在最终dbdata

此外:

chrome.storage.sync是一个异步API。

你必须等待它完成,然后才能检索数据。

chrome.storage.sync.set({'value': 12}, function() {
    chrome.storage.sync.get("value", function(data) {
      console.log("data", data);
    });
  });

并且输出是:

data Object {value: 12} 

manifest.json中必须包含:

“权限”:[ “存储”],



文章来源: chrome.storage set\\get clarification