2015-10-14 64 views
0

我想使用Meteor.wrapAsync流星wrapAsync與瓶蓋

這裏是我的代碼:

 data1 = function(){ 

      connection.query('SELECT * FROM players', function(err, rows, fields){ 
      if (err) throw err; 
      console.log(rows); 
      return rows; 

     }); 


     }; 

     var returndata = Meteor.wrapAsync(data1); 

     console.log(returndata); 

,我用的console.log得到COutput可以是[功能]

任何人都可以檢查並更正此代碼。

BTW:我已經使用流星節點纖維/未來有另一種解決方案這個問題,但我想知道一些正確的方法來做到這一點使用Meteor.wrapAsync

+0

因爲'data1'沒有按與異步無關調用''connection.query'確實,你應該把它包裝成'Meteor.wrapAsync' – Sindis

+0

你能舉個例子,我會試試看,我會感謝你在 – Manu

+0

Manu的幫助 - 建議你嘗試http:// meteorpad.com/,因爲你可以在那裏測試流星小提琴 – brianlmerritt

回答

0

Meteor.wrapAsync力量回調將返回在正常的同步功能,實現它,你需要做以下幾點:

var asyncFunction = Meteor.wrapAsync(connection.query, connection); 

    var result = asyncFunction('SELECT * FROM players'); 

    //operations on result 

沒有測試這個功能,但我希望你的想法,它會幫助你開始

+0

嗨Sindis, 我試過這個,但它不工作,其實如果你看到有connection.query之後有另一個功能: connection.query('SELECT * FROM players',function(err,rows,fields){ 我希望你能在這裏理解我的觀點我想要得到行的結果 – Manu

+0

是的,這個函數是回調函數,這就是你想要同步的東西,wrapAsync返回這個函數 – Sindis