Javascript 如何在Chrome本地存储中使用动态键获取和设置?
如果我在我的Chrome扩展中执行类似的操作,它可以正常工作:Javascript 如何在Chrome本地存储中使用动态键获取和设置?,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,如果我在我的Chrome扩展中执行类似的操作,它可以正常工作: chrome.storage.local.set({"Foo1": dataValue}); 这很好: chrome.storage.local.get("Foo1", callback); 但当我试图抽象这些信息函数,以便在不同情况下使用不同的键名时: function saveLocalData(dataKey, dataValue){ chrome.storage.local.set({dataKey: dataV
chrome.storage.local.set({"Foo1": dataValue});
这很好:
chrome.storage.local.get("Foo1", callback);
但当我试图抽象这些信息函数,以便在不同情况下使用不同的键名时:
function saveLocalData(dataKey, dataValue){
chrome.storage.local.set({dataKey: dataValue});
}
saveLocalData("Foo1", "hello foo");
…然后是:
function getLocalData(dataKey, callback){
chrome.storage.local.get(dataKey, callback);
}
getLocalData(dataKey, myCallbackFunction);
…保存和获取似乎都成功了,但在检索时,我似乎只有一个空对象。我在chrome dev tools中浏览了我的代码,检查了返回的[Object]——它不是空的——但它似乎是空的、无用的,如果它的内部有我的数据,我似乎找不到它
我甚至尝试过这个,但没有更好的结果:
function getLocalData(dataKey, callback){
dataKey = "\"" + dataKey + "\"";
chrome.storage.local.get(dataKey, callback);
}
function saveLocalData(dataKey, dataValue){
dataKey = "\"" + dataKey + "\"";
chrome.storage.local.set({dataKey: dataValue});
}
必须有某种方法将本地存储getter和setter抽象到函数中,以便我可以传入一个键名和一个值(要保存),然后通过传入正确的键名检索所需的值。Cookies是这样工作的,但是本地存储有一些我不理解的巫毒。我只对getLocalData()
使用回调函数,因为在setter中不需要回调。我的回调正在工作-回调函数被输入,我得到了看似空的[Object]——它不仅仅是空的
请提供帮助,并提前感谢。如果不使用ES6中新增的计算键,变量就不能用作键
console.log({[“key”+1]:“value”+1})
讲得通,丹尼尔,谢谢。尽管这似乎是一个毫无意义的限制,迫使人们采取笨拙的变通办法。