【问题标题】:Mongoose Schema Post 'save' callback orderingMongoose Schema Post 'save' 回调排序
【发布时间】:2014-09-03 15:20:30
【问题描述】:

我正在使用 mongoose Schema.post('save', postSaveCallback) 方法通过套接字发送更新,以在 Web 浏览器中向订阅的客户端显示数据库中的世界状态。我想知道是否保证后保存回调以与调用保存方法相同的顺序执行?这将保证客户端视图中表示的状态是世界的准确状态。如果不能保证这些后保存回调的顺序与调用 mongoose save 方法的顺序相同,则意味着客户端视图可能与真实的数据库表示不同步。

有没有更好的方法来做到这一点,或者我的方法是否明智?

另外,是否保证在调用 postSaveCallback 时,底层 mongodb 上的保存操作已完全完成并成功?

非常感谢您对此的任何指点。

提前致谢。

【问题讨论】:

    标签: node.js mongodb sockets mongoose real-time


    【解决方案1】:

    与一般的异步事物一样,没有定义顺序。 postSaveCallback 在保存操作返回时调用,然后在 Node 处理它时执行。一些保存比其他可能已经开始的保存需要更长的时间,因此回调几乎可以以任何顺序发生。您必须修改回调相互协调的方式,以确保您的状态所需的任何类型的一致性。

    save callback 带有一个err 参数,所以很自然地仅仅因为回调并不意味着操作成功。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 2020-07-04
      • 2016-07-14
      • 2019-09-26
      • 2017-01-31
      • 2015-04-11
      • 2019-03-12
      相关资源
      最近更新 更多