我有一个 Meteor 应用程序,当客户端对已发布集合所做的所有更改都已写入服务器时,我希望能够在客户端进行检查。
我查看了minimongo和ddp-server中的代码,但我没有看到任何直接的方法来判断更改何时成功写入服务器。
Minimongo 概述了保存数据的过程:
- 用户在客户端触发交互
- 模拟将一些突变应用于本地状态
- 触发 RPC 以在服务器上执行
- 一段时间后,RPC 会返回结果
- 再过一段时间,RPC 返回一条“更新”消息(在 DDP 级别),这意味着来自 RPC 的所有更改都已持久化
- 此时我们知道,来自服务器的所有实际更改都是同步的,我们可以丢弃模拟的突变(保留来自服务器的真实更改)
我可以覆盖LocalCollection.prototype.saveOriginals
并LocalCollection.prototype.retrieveOriginals
知道它们何时被调用,但我不确定如何验证数据何时实际保存。retrieveOriginals
即使 Meteor 服务器关闭,也会被调用。
是否有任何其他地方可以挂钩回调或监听事件以了解何时同步更改?