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