API 用于监控 Meteor 中的客户端 -> 服务器集合更新状态
API for monitoring client -> server collection update status in Meteor
大多数用于编辑文档的在线协作工具,例如 Google Docs,都会提供一条消息,确认您的更改已在编辑后保存。
我想在 Meteor 中做同样的事情;向用户提供一条消息,指示最近在客户端上所做的给定更改是否已成功传播到服务器。我希望有一些简单的方法来询问 "Have all client-side changes been accepted by the server?"
我找不到 - 是否有支持的 API 来执行此操作?我可以浏览 Meteor.Collection._* 属性,但宁愿不使用内部的、易于更改的平台方法和变量。
请记住,集合操作实际上只是幕后的方法。因此,它们也提供了指定回调函数的选项(参见 http://docs.meteor.com/#/full/insert)。因此,如果您想确定您的操作(例如 insert
)成功,那么只需提供这样的回调并使用它来更新您想要提供给用户的任何指示。
例如:
Documents.update(currentId, {$set: {text: "my new text"}}, function(err, count) {
if (err) {
Session.set('status', "Error saving document!");
alert("Couldn't save changes.");
} else {
Session.set('status', "All changes saved.");
}
});
大多数用于编辑文档的在线协作工具,例如 Google Docs,都会提供一条消息,确认您的更改已在编辑后保存。
我想在 Meteor 中做同样的事情;向用户提供一条消息,指示最近在客户端上所做的给定更改是否已成功传播到服务器。我希望有一些简单的方法来询问 "Have all client-side changes been accepted by the server?"
我找不到 - 是否有支持的 API 来执行此操作?我可以浏览 Meteor.Collection._* 属性,但宁愿不使用内部的、易于更改的平台方法和变量。
请记住,集合操作实际上只是幕后的方法。因此,它们也提供了指定回调函数的选项(参见 http://docs.meteor.com/#/full/insert)。因此,如果您想确定您的操作(例如 insert
)成功,那么只需提供这样的回调并使用它来更新您想要提供给用户的任何指示。
例如:
Documents.update(currentId, {$set: {text: "my new text"}}, function(err, count) {
if (err) {
Session.set('status', "Error saving document!");
alert("Couldn't save changes.");
} else {
Session.set('status', "All changes saved.");
}
});