使用Chrome扩展程序。我使用以下内容将一些数据保存到本地存储:
chrome.storage.local.set({ [variablyNamedEntry]: someObjectToBeSaved });
在我的代码的其他地方,我想查询如果条目存在,如果存在,我会想要使用该对象本地变量“myVar”。
如果条目存在,此代码可以实现我的目标:
chrome.storage.local.get(null, function(result){
myVar = result[variablyNamedEntry];
}
但是如果“variablyNamedEntry”没有条目,则会抛出错误。我可以用try / catch序列来管理这个错误。但这不是最好的方法,因为我知道它不会在很大比例的时间内找到该条目。
我如何实现目标?
更新
我尝试使用:
chrome.storage.local.get([variablyNamedEntry], function(result){
if (result != undefined)
myVar = result[variablyNamedEntry];
}
但如果条目不存在,我仍然会收到以下错误:
extensions::uncaught_exception_handler:8 Error in response to storage.get: TypeError: Cannot read property 'someProperty' of undefined
答案 0 :(得分:2)
请注意the items parameter for the callback of chrome.storage.local.get
is always an object,永远不会undefined
。
假设您有一个键值为'Sample-Key'
的键值,您可以使用以下代码
chrome.storage.local.get(null, function(result){
if(typeof result['Sample-Key'] !== 'undefined') {
console.log(result['Sample-Key']);
}
});
或者
chrome.storage.local.get('Sample-Key', function(result){
if(typeof result['Sample-Key'] !== 'undefined') {
console.log(result['Sample-Key']);
}
});