我有一个 IndexedDB,它在本地缓存具有三个属性 a、b 和 c 的数据。a 和 b 一起形成一个复合键, c 是我所追求的内容。
现在,客户端从服务器获取我想要显示的项目列表。然后客户端应该在 IndexedDB 中查找 (a,b) 并检索匹配的 c,然后使用 sha1 对 c 进行哈希处理(使用 Rusha,这已经可以正常工作了)。
对于那些 sha1(c_client) 与 sha1(c_server) 不匹配的项目,客户端从服务器检索所有 (a,b) 对(使用一个带有 JSON 序列化数组 (a,b) 的 GET 请求)。服务器返回c的更新内容,然后客户端将新的c存储在IndexedDB中,然后将整个对象数组交给显示函数。
如您所见,大部分逻辑绝对需要顺序操作——但 IndexedDB 是高度异步的。
有什么方法可以以同步的方式做我想做的事吗?