var testSet = new Set(); testSet.add(1); testSet.add(2);
chrome.storage.local.set( { 'key': testSet }, function() { chrome.storage.local.get( 'key', function(data){ console.log(data) }); });
This outputs
Object {key: Object}
key: Object__proto__:
Object__proto__: Object
Why doesn't it show the testSet values in there?
One way to achieve this, is by converting your Set
into an array by using Spread Operator .
Eg
var testSet = new Set(); testSet.add(1); testSet.add(2);
chrome.storage.local.set({ 'key': [...testSet] });
And when you want to retrieve it, you can do it like..
chrome.storage.local.get('key', function(data){
var mySet = new Set(data.key);
console.log(mySet);
})
Edit: Thanks for Xan's comment to notice that chrome.storage
could set an array directly.
From the chrome API docs:
StorageArea.get(string or array of string or object keys, function callback)
So it looks like you can only use primitives and objects containing primitives.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.