typescript - Dexie 从第二个查询返回值
问题描述
我有 Typescript 代码,我在其中使用 Dexie 将一些数据放入 IndexedDB,然后我尝试使用 where 或其他方法将其拉出。每次第一次调用从 DB 获取数据返回未定义的值或空数组(取决于查询),第二次执行(相同的查询)返回良好的数据。
为了插入数据,我在 Table 对象上使用 put 方法(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
另一种方式:
await database.tableName.put(myObject);
... some code ...
await database.tableName.toArray(); // return empty array
await database.tableName.toArray(); // return array with myObject
每个方法作为第一次总是返回未定义/空数组,总是从第二次执行(逐行)返回正确的值(正确的对象实例)。在保存和加载数据之间几乎没有指令(还有其他保存在同一个表中)。
解决方案
推荐阅读
- vue.js - 在少数路由器视图之间更改数据
- php - yii2 显示另一个表中的搜索过滤器和字段
- android - 从 Firebase 数据库中检索数据时出现 NullPointer 异常
- mysql - 查询自定义变量
- angular-material - 带有chart.js TypeError的Angular 6:项目为空
- regex - VBA 正则表达式 - 公式中使用的值是错误的数据类型
- postgresql - 查询包含具有单个元素的 json 数组的 jsonb 列
- php - PHP preg_match_all 在二进制数据上失败
- awk - 如何从linux中的两个文件中选择匹配的数据?
- angular6 - Angular flex布局如何有条件地添加fxLayoutAlign