En la documentación de IndexedDB encuentro ejemplos como este
// Let us open version 4 of our database var DBOpenRequest = window.indexedDB.open("toDoList", 4); // these two event handlers act on the database being opened // successfully, or not DBOpenRequest.onerror = function(event) { note.innerHTML += '<li>Error loading database.</li>'; }; DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Database initialized.</li>'; // store the result of opening the database in the db // variable. This is used a lot later on, for opening // transactions and suchlike. db = DBOpenRequest.result; };Según tengo entendido, esto primero crea un objeto de solicitud y luego define dos devoluciones de llamada. Pero nunca llama a ningún código para ejecutar la solicitud. Todavía parece ejecutarlo en algún momento.
Estoy especialmente interesado en los detalles, ya que parece ser complicado ejecutar diferentes transacciones una tras otra, ya que las transacciones parecen ser asíncronas.