如何检查是否在chrome存储上设置了变量

Jua*_*aab 7 javascript local-storage google-chrome-extension chrome-web-store google-chrome-storage

我有一个与LocalStorage一起使用的小片段,但我无法使其适用于Chrome存储计划.

当我的应用程序启动时,我检查localStorage中的变量

var bookNarration=parseInt(localStorage.getItem("narration"));
Run Code Online (Sandbox Code Playgroud)

如果该变量未定义,则表示我的应用程序第一次打开,并且在使用"默认"声明处理交换机中的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; }
Run Code Online (Sandbox Code Playgroud)

为了使其适用于Chrome存储,我以这种方式更改了我的代码:

var bookNarration=parseInt(chrome.storage.local.get("narration"));
Run Code Online (Sandbox Code Playgroud)

但我立刻得到了这个错误:

调用表单get(string)与定义get(可选字符串或数组或对象键,函数回调)不匹配

我一直在寻找寻找解决方案的许多小时,但我无法使其发挥作用.我只需要检查是否已经定义了值,所以如果不是,我可以使用set()方法来存储我的默认值.

Jam*_*lin 10

该函数需要回调:

chrome.storage.local.get("narration", function(data)
{
    if(chrome.runtime.lastError)
    {
        /* error */

        return;
    }

    var bookNarration = parseInt(data.narration);

    switch(bookNarration)
    {
        /* ... */
    };
});
Run Code Online (Sandbox Code Playgroud)