1. js / lib / 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
 */
9
export 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