У меня есть код Typescript, где я помещаю некоторые данные в IndexedDB, используя Dex ie, и затем я пытаюсь извлечь их, используя метод where или другой метод. Каждый раз первый вызов для получения данных из БД возвращает неопределенное значение или пустой массив (зависит от запроса), а второй вызов execute (тот же запрос) возвращает хорошие данные.
Для вставки данных я использую метод put для объекта Table (* 1003) *https://dexie.org/docs/Table/Table.put () )
await Table.put(someObject)
Для получения данных я пробовал другой способ
https://dexie.org/docs/Table/Table.where ()
await Table.where('index_name').equals('value').firts();
await Table.where('index_name').equals('value').toArray();
await Table.toArray();
Итак, более реальный код выглядит так:
await database.tableName.put(myObject);
... some code ...
await database.tableName.where('name').equals(myObject.name); // return undefined
await database.tableName.where('name').equals(myObject.name); // return myObject
прочее way:
await database.tableName.put(myObject);
... some code ...
await database.tableName.toArray(); // return empty array
await database.tableName.toArray(); // return array with myObject
Каждый из методов в первый раз всегда возвращает неопределенный / пустой массив, всегда со второго выполнения (строка за строкой) возвращает правильное значение (правильный экземпляр объекта). Между сохранением и загрузкой данных есть несколько инструкций (также другие сохранения в той же таблице).