1. lib / js / bdConsulta.js

1/**
2 * @template T
3 * @param {Promise<IDBDatabase>} bd
4 * @param {string[]} almacenes
5 * @param {(transaccion: IDBTransaction, resolve: (resultado:T)=>void) => any
6 * } consulta
7 * @returns {Promise<T>}
8 */
9export async function bdConsulta(bd, almacenes, consulta) {
10
11 const base = await bd
12
13 return new Promise((resolve, reject) => {
14 // Inicia una transacción de solo lectura.
15 const transaccion = base.transaction(almacenes, "readonly")
16 // Al terminar con error ejecuta la función reject.
17 transaccion.onerror = () => reject(transaccion.error)
18 // Estas son las operaciones para realizar la consulta.
19 consulta(transaccion, resolve)
20 })
21
22}
skip_previous skip_next