Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从自定义方法返回chrome.storage.sync项目_Javascript_Google Chrome_Google Chrome Extension_Key_Storage - Fatal编程技术网

Javascript 从自定义方法返回chrome.storage.sync项目

Javascript 从自定义方法返回chrome.storage.sync项目,javascript,google-chrome,google-chrome-extension,key,storage,Javascript,Google Chrome,Google Chrome Extension,Key,Storage,我正在尝试使用Chrome.storage.sync创建一个Chrome扩展,使用以下对象: var storage = { "area":chrome.storage.sync, "get":function(key){ var result = true, callback = function(items){ result = items[key]; }; this.area.get(key,callback);

我正在尝试使用Chrome.storage.sync创建一个Chrome扩展,使用以下对象:

var storage = {
  "area":chrome.storage.sync,

  "get":function(key){

    var result = true,
      callback = function(items){
        result = items[key];
      };

    this.area.get(key,callback);

    return result;
  },

  "set":function(key,value){
    //create an empty object for a key:value pair
    var object = {};

    object[key] = value;

    console.log(object);

    this.area.set(object,function(){
     console.log(object);
    });

  }
};

但是“get”方法永远不会返回结果。在本例中,它只返回“true”。为什么我不能获取项目的实际值,将其存储在结果中,然后返回?Chrome获取key:value对是否需要时间?如果是这样,我该如何解决这个问题?

因为
chrome.storage
操作是异步的,所以在调用
get
方法时应该传递回调函数

var storage = {
  "area":chrome.storage.sync,

  "get":function(key, callback){    
    this.area.get(key,callback);
  },

  "set":function(key,value){
    //create an empty object for a key:value pair
    var object = {};

    object[key] = value;

    console.log(object);

    this.area.set(object,function(){
     console.log(object);
    });

  }
};
称之为:

var callback = function(items) {
    // get your object from chrome.storage here
    // and perform your actions.
    console.log(items);
}
storage.get(key, callback);