我正在使用mongoose Schema.post('save',postSaveCallback)方法,以便通过套接字发送更新,以便在Web浏览器中向订阅客户端显示数据库中的世界状态。我想知道保存回调是否保证以与调用save方法相同的顺序执行?这将保证客户端视图中表示的状态是世界的准确状态。如果不保证这些post保存回调的顺序与调用mongoose save方法的顺序相同,则意味着客户端视图可能与真实数据库表示不同步。
有更好的方法可以做到这一点还是我的做法合理?
此外,是否可以保证当调用postSaveCallback时,底层mongodb上的保存操作已完全完成并成功?
非常感谢任何指示。
提前致谢。
答案 0 :(得分:0)
与异步事物一样,订单未定义。保存操作返回时调用postSaveCallback
,然后在Node转到它时执行。有些保存比以前可能已经开始的其他保存需要更长的时间,因此回调几乎可以在任何顺序中发生。您必须修改回调协调的方式,以确保您所在州的所需一致性。
save callback采用err
参数,因此回调并不意味着操作成功。