从Meteor docs我知道:
Meteor.call
可以是used anywhere
在哪种情况下你会从服务器使用Meteor.call
直接从另一个模块/类/对象调用方法?
=== server/file.js ===
let myPromise = Meteor.callAsync('aServerMethod', options);
VS
=== server/file.js ===
let myPromise = aModule.aMethod(options);
答案 0 :(得分:3)
一个关键的区别是在Meteor.method
内部,this
绑定到方法调用对象,该对象提供了一堆诸如this.userId
或this.unblock
之类的东西,请参阅docs for more。你不能在正常的职能中得到这个。
另一个是,所有方法都可以从客户端调用,因为我确定你知道。因此,如果你想做仅服务器的东西,我不会使用Meteor.method
而是常规函数。如果我想将serverMethod
也公开给客户,我也会使用Meteor.method
。