El siguiente código no está haciendo lo que espero:
chrome.runtime.onStartup.addListener(() => { chrome.storage.local.set({ foo: {}, }); }); chrome.tabs.onUpdated.addListener(async () => { const foo = await chrome.storage.local.get("foo"); foo[Math.floor(Math.random() * 10).toString()] = "data"; chrome.storage.local.set({ foo: foo, }); });Resulta en estos datos:
{ "2": "data", "foo": { "5": "data", "foo": { "3": "data", "foo": { "2": "data", //... // (the rest omitted deliberately for not occupying too much space)No lo entiendo, ¿este resultado tiene sentido? Probablemente estoy pensando mal al respecto, pero no puedo averiguar cuál es mi malentendido. Si estoy configurando foo, que es una clave que ya está disponible en el objeto , ¿no debería actualizarse (y no anidarse)? Mi objetivo final es una estructura como esta (olvídate de Math.random, eso fue solo para el ejemplo):
{ foo: { "AB4": "data1", "5C2": "data2" } }y quiero que se convierta en algo como esto después de la actualización:
{ foo: { "AB4": "data1", "5C2": "data2", "DA1": "data3" } }