2014-10-04 123 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