Tengo una situación en la que tengo una variable en el almacenamiento en la nube, que obtengo de forma asíncrona cada vez que quiero hacer algo con ella. Actualmente el código se ve así:
chrome.tabs.onUpdated.addListener(function() { // Fetch example_variable from storage, then // Do things with example_variable... }); chrome.tabs.onActivated.addListener(function() { // Fetch example_variable from storage, then // Do things with example_variable... }); Dado que obtener la example_variable de ejemplo de la nube cada vez que se activan los eventos (puede ocurrir más de una docena de veces por minuto) es muy ineficiente, estaba pensando en reestructurarlo de esta manera:
chrome.storage.onChanged.addListener(function() { // Everytime the cloud variable changes // Fetch example_variable from storage, then // set example_variable to what I fetched. }); chrome.tabs.onUpdated.addListener(function() { // Do things with example_variable... }); chrome.tabs.onActivated.addListener(function() { // Do things with example_variable... });Mi primer pensamiento fue crear nuevos oyentes dentro del oyente de actualización de almacenamiento (y cerrar los antiguos), pero la documentación de Chrome Extension advierte directamente contra esto .
Podría usar variables de alcance global, pero eso parece increíblemente tonto y poco elegante.
¡Agradecería cualquier ayuda!