He creado la siguiente función asíncrona, que recibe un valor de "id" (entero) como parámetro.
Pero cuando paso 1 como valor entero para "id", la salida de console.log dice "indefinido", mientras que si reemplazo la "id" en store.get() con un 1 codificado, funciona y muestra la salida correcta en consola.log. Probé console.log(id) y puedo confirmar que recibe el valor de parámetro correcto, que en este caso es 1.
Pero no puedo entender por qué actúa de manera diferente cuando recibe el valor "id" en lugar de uno codificado.
La función store.get() es parte de las funciones estándar de indexedDB.
async getCollection(id) { let db = await idb.getDb() let trans = db.transaction(['collections'], 'readonly') let store = trans.objectStore('collections') let collection = store.get(id) return new Promise(resolve => { console.log(collection) collection.onsuccess = () => { console.log(collection.result) } }) }Supuse la respuesta. La confusión es que cuando registré el valor de "id", mostraría: 1 Como si fuera solo un número. Pero si hice id === 1 control, sería falso. Así que resolví el problema por
let numberId = parseInt(id, 10)Después de lo cual pude usar ese valor correctamente en el método store.get().