2016-09-09 4 views
0

ありがとうございます。私はMySQLの結果からすべての行が処理された後に何かをしようとしています。私は約束を試したが、うまくいかない。 テール4600行ですが、私は[]を取得しています。私の問題はNodeJS Asyncだと思います。 は、ここに私のコードです:MySQL結果のすべての行が処理された後に何かをする約束

let paradasRelations = db.query('SELECT * FROM ParadasRelations'); 

    let paradaPromise = new Promise(function (resolve, reject) { 
     let paradasData = []; 
     paradasRelations.on('result', function (row) { 
      paradasData.push(row); 
     }); 
     resolve(paradasData); 
    }); 
    paradaPromise.then(function (paradasData) { 
     console.log(paradasData); 
    }); 
+1

試し 'paradasRelations.on( '終了'、機能(行){決意(paradasData);});' –

+0

が – Martin

+1

を未定義ましょう私は私のタイプミスがありました提案、plsは再度チェックします –

答えて

1

あなたはすべての行が返された後にのみPromiseを解決する必要があり、あなたがendイベントを取得します。これはテストされていませんが、このようなものは動作するはずです:

let paradasRelations = db.query('SELECT * FROM ParadasRelations'); 

let paradaPromise = new Promise(function (resolve, reject) { 
    let paradasData = []; 
    paradasRelations.on('result', function (row) { 
     paradasData.push(row); 
    }); 

    paradasRelations.on('end', function() { 
     resolve(paradasData); 
    }); 
}); 

paradaPromise.then(function (paradasData) { 
    console.log(paradasData); 
}); 
+0

素晴らしい、感謝の仲間! – Martin

+0

np、あなたが幸せであれば回答としてマークすることを忘れないでください:) – antfx

+1

すでに完了しました:)、ありがとう! – Martin

関連する問題