| 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 | } |