2016-06-07 38 views
1

這是一個async.parallel方法來顯示店鋪信息和其相應的圖像:async.parallel多個數據

function listshops(callback) 
     { 
     async.parallel([ 
     myFirstFunction, 
     mySecondFunction,    
     ], function (err,results) { 

     console.log(results); 
     }); 


function myFirstFunction(callback) { 

     client.connection.query('select * from shop',function(err,data1){ 
     callback(null,data1); 
    }); 
} 


function mySecondFunction(callback) { 
    client.connection.query('select * from image',function(err,data2){ 
     callback(null,data2); 

    }); 
} 

1)我的表=>店和圖像:http://i.stack.imgur.com/F20MU.png

2)我code.But輸出讓這不是輸出我預計: http://i.stack.imgur.com/ltJpf.png

3)預期輸出:http://i.stack.imgur.com/xAmvu.png

回答

4
function listshops(callback) 
{ 
var array=[3,4]; 
    async.each(array,function(dat,callback){ 

    async.parallel([ 

     function(callback){ 
      client.connection.query('select * from shop where shopId=?',dat,function(err,data1){ 
      callback(null,data1); 

      }); 
     },  

     function (callback) { 
      client.connection.query('select * from image where shopId=?',dat,function(err,data2){ 
      callback(null,data2); 

      }); 
     } 
    ], 
    function(err,data) 
    { 
    console.log(data); 

    }); 
}); 

} 
1

該程序正在爲您編寫的代碼正確工作。

async.parallel將並行運行給定的函數數組中的所有函數,並以與函數數組中函數的順序相同的順序返回所有函數的結果。

根據您的要求,您可以只有一個函數執行連接sql查詢以提供所需的輸出。

+0

是的,我們可以通過SQL連接來做到這一點,但問題是我有圖像表中的多個數據,我想把它作爲一個單獨的數組。我需要輸出格式,我在問題中給出。我認爲這可能與async.each。 –