我正在尝试将数组存储在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。请告诉我哪里出错?
答案 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 =字符串)。