如何解决Dexie 中 Table.bulkPut 的 .then() 返回什么?
我正在将 Dexie 用于我的网络应用程序。但是,从文档中我无法获得成功时的bulkPut 确切返回值。
例如: 假设在我的数据库中,我有三个对象,id 分别为 1、3 和 5。例如,我将把它显示为一个整数数组:DB = [1,3,5]。
我的应用程序要求服务器从服务器上给我所有项目。我收到了一个包含四个对象的数组:result = [2,3,4,5]。 2 和 4 是新项目,3 与我数据库中的 3 相同,但已修改。 5 未修改,因此等于我的 DB 对象。
我希望来自 bulkAdd 和 bulkPut 的以下输出:
当我使用 Table.bulkAdd(result,{allKeys: true}) 来捕获错误时,我希望得到以下结果: 我的数据库包含: [1,2,3,5] 并且我的 .then() 将返回一个包含 id 的承诺2 和 4。
当我使用 Table.bulkPut(result,5] 并且我的 .then() 将返回一个包含 id 2、3 和 4 的承诺。因为5 没有被修改,因此没有被替换。
我希望这些方法的承诺只返回实际添加/修改的值的键。这个假设正确吗?因为实际上这不是我的应用程序中发生的情况。 在我的应用程序中,我使用了 bulkPut(以便我可以使用一种方法添加和更新我的数据),但它总是返回 2 个项的键,无论输入是包含修改项还是现有项的数组。
解决方法
bulkPut() 和选项 {allKeys: true} 返回一个与给定输入数组长度相同的数组。无论放置操作是否会产生新的、更新的或相同的数据,所有键都将返回。如果发生异常并且您捕获它,您将只有错误对象。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。