Javascript 节点为每个循环并行运行

Javascript 节点为每个循环并行运行,javascript,mysql,node.js,database,ecmascript-6,Javascript,Mysql,Node.js,Database,Ecmascript 6,我目前正在使用此for each循环从mysql数据库获取数据: //...sql query returns result var obj = {}; Object.assign(obj, result); async.forEach(obj, function (item, callback){ switch(item.type){ case 11: //for exa

我目前正在使用此for each循环从mysql数据库获取数据:

//...sql query returns result

var obj = {};
Object.assign(obj, result);

async.forEach(obj, function (item, callback){
                switch(item.type){
                    case 11:
                        //for example counting likes
                        db.query("SELECT COUNT(*) AS likes FROM tbl_post_likes WHERE BINARY post_id = ?", [item.post_id], function(err, res){
                            if(err) throw err;

                            item.likes = res[0].likes;
                            callback();

                        });
                        break;
                    case 12:

                        /*I haven't completed the other types yet.
                          But they are having similar queries
                          because there are different kind of posts.
                          I want to to run these queries parallel */

                        callback();
                        break;
                    case 21:
                        callback();
                        break;
                    case 22:
                        callback();
                        break;
                    default:
                        console.log("wtf?: " + result[i]);
                        callback();
                        break;
                }

            }, function(err) {
                if(err) throw err;
                res.writeHead(200, {"Content-Type": "application/json"});
                console.log(obj);
                res.end(JSON.stringify(obj));

            });
最后,我不想将对象“obj”作为JSON输出,其中包含所有必需的信息

非常感谢您的帮助&很抱歉我的英语不好;)

使用async.eachSeries而不是async.forEach

以下文件详细说明了:

这里有更多的例子


如果这解决了您的问题,或者您仍然遇到问题,请接受作为答案,在此处分享,并进一步了解问题所在。eachseries“与每个相同,但一次只运行一个异步操作。”。他的目标不是并行运行,不是串行运行吗?也许只是一个措辞拙劣的问题。默认情况下,问题是并行运行,并希望逐个运行。第二个超链接显示“找不到该页面”