Estoy creando una extensión para el sitio de la universidad, al que no tengo acceso de back-end. La tarea es reorganizar ciertos elementos del bloque, para los cuales estoy tratando de almacenar información en la cadena con números (los elementos se agregan a esta cadena después de que se carga la página). Funcionó bien con localStorage , pero finalmente hubo un problema: cada vez que los administradores del sitio actualizan el sitio, la memoria caché se borra y los datos se pierden, así que elijo pasar a la API chrome.storage .
Ahora aquí está el problema. El comportamiento de chrome.storage.sync.get es bastante inconsistente, puede ser lo suficientemente lento como para no obtener ningún dato en el caché a tiempo para que MutationObserver comience a funcionar. Entiendo que chrome.storage.sync.get es una devolución de llamada asincrónica, pero no tengo forma de forzarlo a que funcione antes de que la página comience a llenarse.
window.toDelete = []; chrome.storage.sync.get('course', function(entries){ window.toDelete = deserializeEntries(entries.course); console.log("hello"); }) // Mutation observer declaration and .observe call En este ejemplo, podría ir de cualquier manera, "hola" se imprime antes o después de que MutationObserver haga todo el trabajo. Tengo una llamada que imprime el contenido de toDelete en MutationObserver para saber si funciona con la memoria caché correctamente llena o no. Ejemplo 1 Ejemplo 2