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