我有一个与LocalStorage合作的小片段,但我还无法使用Chrome Storage计划。
当我的应用程序启动时,我检查localStorage中的变量
var bookNarration=parseInt(localStorage.getItem("narration"));
如果该变量未定义,则意味着我的应用程序第一次打开,并且在使用“默认”声明在交换机中处理bookLanguage之后。
switch(window.bookNarration)
{
case 2:
window.narrationShift = window.spanishShift;
break;
case 3:
window.narrationShift = window.frenchShift;
break;
case 10:
window.narrationShift = window.neutralShift;
break;
default:
window.narrationShift = 0; }
要使其与Chrome存储一起使用,我可以通过以下方式更改我的代码:
var bookNarration=parseInt(chrome.storage.local.get("narration"));
但我立刻得到了这个错误:
调用表单get(string)与定义get(可选字符串或数组或对象键,函数回调)不匹配
我一直在寻找寻找解决方案的好几个小时,但我无法让它发挥作用。我只需要检查该值是否已定义,如果不是,我可以使用set()方法来存储我的默认值。
答案 0 :(得分:10)
chrome.storage.local.get("narration", function(data)
{
if(chrome.runtime.lastError)
{
/* error */
return;
}
var bookNarration = parseInt(data.narration);
switch(bookNarration)
{
/* ... */
};
});
答案 1 :(得分:1)
现在没有必要使用捕获(意味着我不知道自从接受的答案以来现在是否发生了变化)。
如果项目不存在,您可以传入您想要的项目以及默认值
chrome.storage.local.get({narration: "", num: 0, books: []}, function(data)
{
var bookNarration = parseInt(data.narration);
switch(bookNarration)
{
var numBooks= data.books.length
/* ... */
};
});