我正在尝试使用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是否需要时间来获取密钥:值对?如果是这样,我该如何解决这个问题?
答案 0 :(得分:0)
由于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);