Meteor.call 的基础知识
Meteor.call(name, [arg1, arg2...], [asyncCallback])
(1)name String
(2)调用方法的名称
(3)arg1,arg2 … EJSON-able 对象[可选]
(4)asyncCallback 函数[可选]
一方面,你可以这样做:(通过 Session 变量,或通过 ReactiveVar )
    var syncCall = Meteor.call("mymethod") // Sync call 
这意味着如果你做这样的事情,服务器端你会做:
    Meteor.methods({
        mymethod: function() {
            let asyncToSync =  Meteor.wrapAsync(asynchronousCall);
            // do something with the result;
            return  asyncToSync; 
        }
    });
另一方面,有时你会想通过回调的结果保留它吗?
客户端 :
Meteor.call("mymethod", argumentObjectorString, function (error, result) {
    if (error) Session.set("result", error); 
    else Session.set("result",result);
}
Session.get("result") -> will contain the result or the error;
//Session variable come with a tracker that trigger whenever a new value is set to the session variable. \ same behavior using ReactiveVar
服务器端
Meteor.methods({
    mymethod: function(ObjectorString) {
        if (true) {
            return true;
        } else {
            throw new Meteor.Error("TitleOfError", "ReasonAndMessageOfError"); // This will and up in the error parameter of the Meteor.call
        }
    }
});
这里的目的是表明 Meteor 提出了各种方法来在客户端和服务器之间进行通信。