async.parallel用于多个数据

时间:2016-06-07 07:50:34

标签: node.js express asynchronous

这是一个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)输出我的代码。但这不是我预期的输出:     http://i.stack.imgur.com/ltJpf.png

3)预期输出:http://i.stack.imgur.com/xAmvu.png

2 个答案:

答案 0 :(得分: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 :(得分:1)

该程序正在为您编写的代码正常工作。

async.parallel将并行运行给定的函数数组中的所有函数,并以与函数数组中函数的顺序相同的顺序返回所有函数的结果。

根据您的要求,您只能有一个执行join sql查询的函数来提供所需的输出。