0

我尝试在我的 node.js 项目中使用 wait.for.js 库,但无法从查询中获取数据库数据。

这是示例(我们在 Coffeescript 中的数据库类中):

execute: (sqlOrder) ->  
       resultSet = ""
       this.connection.query(sqlOrder,(err,results,fields) =>
         resultSet = results;
       )
       console.log results 

但实际上这不适用于回调过程

然后我使用“Wait.for”并尝试按照数据库示例“ https://github.com/luciotato/waitfor ”但是有一个问题,wait.launchFiber(); 线 ?

所以我尝试了......但没有工作

query2 : ( sql, callback ) =>
        wait.for(@connection.query(sql,(err, result, field)->
            data = {results:result, fields:field}
            callback(err,data)
        ))


    back : (err,data) ->
        @result = data
        console.log("I'm in back")

    prepare: (strOrder) =>
        wait.launchFiber(@query2,strOrder,@back);
        console.log(@result)

问题是,有一个类“A”的实例调用方法execute(“Select * from my_table”),而类“B”及其方法“execute(strOrder)”返回一个数组或对象结果。

拜托,任何人都可以帮我找到解决方案吗?

4

1 回答 1

0

我解决了这个问题,在github中我遵循了这个:

“您需要在 Fiber 中才能使用 wait.for。启动 Fiber 的理想位置是在请求到达时处理它:”

var server = http.createServer( function(req, res){ console.log('req!'); wait.launchFiber(handler,req,res); //处理一个光纤,保持节点旋转 }).listen( 8000);

我能够正确使用 wait.for

谢谢。

于 2014-08-27T07:11:43.467 回答