Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

221
Views
index.getAll() en indexedDB devuelve una matriz vacía

Novato de IndexedDB aquí...

 const queueStore = db.createObjectStore("queue", { keyPath: "id", autoIncrement: true }); queueStore.createIndex("HasBeenSent", ["sent"], { unique: false });

Estoy en cola de datos, esperando una carga a un servidor en un momento posterior, por lo que por ahora el valor "enviado" es cero para cada registro; Actualizaré el registro para reflejar "enviado" igual a 1 más tarde.

Cuando trato de obtener todos los registros donde el valor de "enviado" es cero, obtengo un resultado vacío, usando

 request = db.transaction('queue').objectStore('queue').index('HasBeenSent').getAll(0);

Si elimino el cero y solo tengo corchetes vacíos, obtengo todas las filas en la tienda, pero si incluyo cualquier valor en los corchetes (0, 1, -1, etc.) cada vez obtengo resultados vacíos, incluso si definitivamente tener registros almacenados con esos valores.

(¿He estropeado algo en la configuración?)

¿Cómo consulto a la tienda para que devuelva todas las filas donde "enviado" es igual a cero?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Leí a través de varias fuentes que getAll() está bien en conjuntos de datos pequeños, pero puede ser lento y hambriento en conjuntos de datos grandes, así que decidí usar cursores que deberían funcionar mejor en conjuntos de datos grandes y pequeños. Pero me encontré con el mismo problema con resultados vacíos.

Lo que no funcionó:

 const request = db.transaction('queue').objectStore('queue').index('sent').openCursor(0);

ni

 const request = db.transaction('queue').objectStore('queue').index('sent').openCursor(IDBKeyRange.only(0));

¿Qué funcionó?

 const keyrange = IDBKeyRange.only(0); const request = db.transaction('queue').objectStore('queue').index('sent').openCursor(keyrange);

Me imagino (pero nunca probé) que al usar getAll(), necesitaría hacer algo similar definiendo primero el rango de teclas, luego incluyéndolo en la solicitud getAll(), como

 const keyrange = IDBKeyRange.only(0); const request = db.transaction('queue').objectStore('queue').index('sent').getAll(keyrange);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!