Javascript 查询本地存储条目而不引发错误

Javascript 查询本地存储条目而不引发错误,javascript,google-chrome,variables,google-chrome-extension,local-storage,Javascript,Google Chrome,Variables,Google Chrome Extension,Local Storage,在chrome扩展上工作。我正在使用以下方法将一些数据保存到本地存储器中: chrome.storage.local.set({ [variablyNamedEntry]: someObjectToBeSaved }); 在我的代码中的其他地方,我想查询条目是否存在,如果存在,我想用对象对某个变量“myVar”进行局部处理 如果条目存在,则此代码可用于实现我的目标: chrome.storage.local.get(null, function(result){ myVar = res

在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
请注意,并且永远不会是未定义的

假设您有一个key值,其中key是
'Sample-key'
,您可以使用以下代码

chrome.storage.local.get(null, function(result){
    if(typeof result['Sample-Key'] !== 'undefined') {
        console.log(result['Sample-Key']);
    }
});

请注意,并且永远不会是未定义的

假设您有一个key值,其中key是
'Sample-key'
,您可以使用以下代码

chrome.storage.local.get(null, function(result){
    if(typeof result['Sample-Key'] !== 'undefined') {
        console.log(result['Sample-Key']);
    }
});


[variablyNamedEntry]
作为第一个参数传递给
.get()
。然后回调应该检查以确保结果参数为非null,如果找到条目,它将位于该对象中。如果没有找到条目,这仍然会引发未捕获的异常。会引发什么异常?如果在尝试访问该值之前确保
result
不为空/未定义,则不会出现异常。已更新以显示错误和尝试的解决方案try!=“undefined”,我知道一些值(作为布尔值)作为字符串返回,这就是为什么==true和==false必须替换为==“true”和==“false”。将
[variablyNamedEntry]
作为
.get()
的第一个参数传递。然后回调应该检查以确保结果参数为非null,如果找到条目,它将位于该对象中。如果没有找到条目,这仍然会引发未捕获的异常。会引发什么异常?如果在尝试访问该值之前确保
result
不为空/未定义,则不会出现异常。已更新以显示错误和尝试的解决方案try!=“undefined”,我知道一些值(作为布尔值)作为字符串返回,这就是为什么==true和==false必须替换为==“true”和==“false”的原因。