我正在尝试实现一个功能,我希望用户看看是否已经处理了对服务器的所有请求,即客户端与服务器同步,以便用户可以确信他的所有更改都已保存
我的想法是覆盖Meteor.call
并为每个调用保留一个计数器,然后在返回回复/错误时减少计数器。然后,我将在客户端显示一条消息,说明" Synced"如果计数器为零,否则我将显示" Unsynced"。
基本上我的问题是,是否有任何"内置" Meteor中的功能已经处理过这个问题,跟踪即将离开的Meteor调用,或者我是否应该按照我的开始进行操作?
这是我的代码在这一刻所看到的:
var originalMeteorCall = Meteor.call;
var counter = 0;
Meteor.call = function() {
if (this.isClient) {
if (arguments && arguments.length > 1) {
counter++;
var returnFunc = arguments[arguments.length - 1];
var newReturnFunc = function (err, result) {
counter--;
return returnFunc(err, result);
}
arguments[arguments.length - 1] = newReturnFunc;
}
}
var result = originalMeteorCall.apply(this, arguments);
return result;
}