我正在尝试将数组存储在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。请告诉我我要去哪里错了? 最佳答案
您应该使用括号将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
的实例,显然不是(字符串+数组=字符串)。关于javascript - 将数组保存在chrome.storage中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48781891/