在chrome.storage中保存数组

时间:2018-02-14 07:35:07

标签: javascript google-chrome-extension

我正在尝试将数组存储在chrome.storage中。这是我的setter和getter函数:

chrome.storage.local.get({favs: []}, function(items) {
    if (!chrome.runtime.error) {
        console.log("retrieving data"+items);
        favs = items.favs;
        console.log("isarray:"+ favs instanceof Array);
    }
});
chrome.storage.local.set({ favs : favs }, function() {
    if (chrome.runtime.error) {
        console.log("Runtime error.");
    } else{
        console.log("storing data")
    }
});

但是行console.log("isarray:"+ favs instanceof Array);返回false。请告诉我哪里出错?

1 个答案:

答案 0 :(得分:0)

你应该用这样的括号favs instanceof Array包裹(favs instanceof Array),所以你的代码看起来像:

chrome.storage.local.get({favs: []}, function(items) {
    if (!chrome.runtime.error) {
        console.log("retrieving data"+items);
        favs = items.favs;
        // (wrap with parenthesis)
        console.log("isarray:" + (favs instanceof Array) );
    }
});
...

如果您不在括号中包装该片段,javascript会尝试评估"isarray:" + favs是否为Array的实例,但它显然不是{string = array =字符串)。