Javascript 从自定义方法返回chrome.storage.sync项目
我正在尝试使用Chrome.storage.sync创建一个Chrome扩展,使用以下对象: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);
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);