Meteor.wrapAsync()不起作用

时间:2016-01-04 20:17:05

标签: javascript asynchronous meteor

我按照The Meteor Chef的指南来包装异步函数并同步调用它。但是,当代码执行时,它似乎只是完全跳过方法调用。不确定我做错了什么。

if (!err) {
  Meteor.methods({
    'ldapLogin': function(username, password) {
      var syncFunc = Meteor.wrapAsync(processLdapLogin);
      var result = syncFunc(username, password, Meteor.user());

      console.log(result);
    }
  });
  Meteor.call('ldapLogin', username, password);
}

1 个答案:

答案 0 :(得分:0)

Meteor Methods转到服务器端

Meteor.call("ldapLogin", username, password, Meteor.user());次呼叫在客户端(网络浏览器端)

现在,如果您在客户端代码(用户名,密码...)中传递参数,您还应该在方法中引用这些参数:

Meteor.methods({
    'processLdapLoginWrapAsync': function(username, password) {
      var syncFunc = Meteor.wrapAsync(processLdapLogin);
      var result = syncFunc(username, password, Meteor.user());

      console.log(result);
    }
  });

(如果确实这是从客户那里打算的话)

否则(如果用户名/密码来自服务器端,我相信这就是你的意图)你不应该从客户端传递这些参数而只能调用:

Meteor.call("ldapLogin") 在客户端