2014-09-03 89 views
0

我正在使用mongoose Schema.post('save',postSaveCallback)方法來通過套接字發送更新以顯示數據庫中的訂閱客戶端的世界狀態一個網頁瀏覽器。我想知道後保存回調是否保證以與保存方法被調用相同的順序執行?這將保證在客戶視圖中呈現的狀態是世界的準確狀態。如果這些後保存回調的順序不能保證與調用mongoose save方法的順序相同,則這意味着客戶端視圖可能會與實際數據庫表示形式不同步。Mongoose Schema Post'save'回調命令

有沒有更好的方法來做到這一點,或者我的方法是否合理?

此外,它是否保證,當postSaveCallback被調用的基礎mongodb上的保存操作已完全完成併成功?

非常感謝任何關於此的指針。

在此先感謝。

回答

0

與一般的異步事物一樣,訂單沒有定義。當保存操作返回時,postSaveCallback被調用,然後當Node接近它時執行。一些節省的時間比以前可能已經被踢出的節省時間要長,所以回調可能以幾乎任何順序發生。您必須修改回調之間的協調關係,以確保您所在州所需的任何一致性。

save callback需要一個err的參數,所以自然只是因爲回調並不意味着操作成功。