文档说
最后,如果你在客户端的存根中并且调用另一个存根 方法,没有执行另一个方法(没有生成RPC,没有 “真实的”发生了)。如果那个其他方法有一个存根,那个存根就会存在 对于该方法并执行。方法调用的返回值是 存根函数的返回值。客户端执行没有问题 同步存根,这就是客户端可以使用的原因 从方法体内部同步Meteor.call形式,如 如前所述。
但我不知道这意味着什么。什么是存根?如何在存根中运行它?事件是一个存根吗?
答案 0 :(得分:2)
您只能在服务器上同步使用Meteor.call。
'stub'是在客户端运行的Meteor.methods
。通常它在服务器端运行。
当它在客户端运行时,它实际上没有做任何事情,这就是它的存根。这可以用于模拟它可以做些什么来创建延迟补偿的效果。
例如,你可以
Meteor.call("create_something", function(err,result) { alert(result) });
然后在您的服务器端
Meteor.methods({
create_something: function() {
SomeCollection.insert({date: new Date()});
}
});
因此,当您运行Meteor.call
时,它会在服务器上插入记录。如果客户端订阅了客户端,它也会得到这个结果,但过了一段时间 - 由于服务器和客户端之间的延迟。
如果将stub方法添加到客户端:
Meteor.methods({
create_something: function() {
SomeCollection.insert({date: new Date()});
}
});
现在,如果你这样做,客户端将添加这个模拟非真实记录,直到服务器返回结果。
它的想法是使用户界面更具响应性,并使Meteor.call
在客户端上直接{ui-wise}为SomeCollection.insert
。