2. js / lib / bdEjecuta.js

1
/**
2
 * @param {Promise<IDBDatabase>} bd
3
 * @param {string[]} entidades
4
 * @param {(t:IDBTransaction) => void} operaciones
5
 */
6
export async function bdEjecuta(bd, entidades, operaciones) {
7
8
 // Espera que se abra la bd
9
 const base = await bd
10
11
 return new Promise(
12
  (resolve, reject) => {
13
   // Inicia una transacción de lectura y escritura.
14
   const transaccion = base.transaction(entidades, "readwrite")
15
   // Al terminar con éxito, ejecuta la función resolve.
16
   transaccion.oncomplete = resolve
17
   // Al terminar con error, ejecuta la función reject.
18
   transaccion.onerror = () => reject(transaccion.error)
19
   // Estas son las operaciones de la transacción.
20
   operaciones(transaccion)
21
  })
22
23
}
skip_previous skip_next