2014-10-04 79 views
0

我无法同步在服务器端运行一个方法,意味着等待它完成。流星:同步方法

mymethod: function(par1, par2){ 

    var timer = Meteor.setTimeout(function() { 

     //do something  

    }); 
} 

我试图使用Meteor.wrapAsync没有成功,我是否裹这样的计时器或整个方法:

Meteor.wrapAsync(Meteor.call('mymethod', par1, par2)); 
+0

我建议使用'npm'包,看看这里https://github.com/meteorhacks/npm#async-utilities – user1934044 2014-10-04 18:47:58

+0

包装计时器应该工作。你可以显示你使用的代码吗? – 2014-10-04 20:19:22

回答

0

怪异。

if (Meteor.isServer) { 
    Meteor.methods({ 
    mymethod: function(par1, par2) { 
     var timer = Meteor.setTimeout(function() { 
      console.log("Hey!"); 
     }, 1000); 
    } 
    }); 

    Meteor.call('mymethod', 'par1', 'par2'); 
} 

在新创建的0.9.3.1应用程序中正常工作。

+0

是的,但我认为如果在延迟函数中使用'Meteor.userId()',它可能不包含调用方法的用户的ID。 – 2014-10-05 07:24:51