Meteor wrapAsync with Closures

时间:2015-10-14 09:34:04

标签: javascript meteor closures

我正在尝试使用Meteor.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获得的输出是[Function]

任何人都可以检查并更正此代码。

BTW:我已经在Meteor中使用Node fiber / future进行了另一个解决方案,但是我想知道使用Meteor.wrapAsync做一些正确的方法

1 个答案:

答案 0 :(得分:0)

Meteor.wrapAsync强制在正常同步函数中返回回调,为了实现它,您需要执行以下操作:

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

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

    //operations on result

没有测试过这个功能,但我希望你明白这个想法,它会帮助你开始