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」に従ってみましたが、問題があります。ライン ?

だから私は試しました...しかし、うまくいきません

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)

問題は、メソッド execute("Select * from my_table") を呼び出すクラス "A" のインスタンスがあり、そのメソッド "execute(strOrder)" を持つクラス "B" が配列またはオブジェクトを返すことです。結果。

誰でも解決策を見つけるのを手伝ってくれますか?

4

1 に答える 1

0

私はこれを解決しました.githubで私はこれに従いました:

「wait.for を使用できるようにするには、ファイバーにいる必要があります。ファイバーを開始する理想的な場所は、要求が到着したとき、それを処理することです。」

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 に答える