Node.js 使用async在节点js中执行循环后执行某些函数 module.exports={ getHomePost:函数(请求、恢复){ post_model.getHomePosts('1',函数(err,行){ 变量局部变量={}; 异步并行([ 函数(回调)

Node.js 使用async在节点js中执行循环后执行某些函数 module.exports={ getHomePost:函数(请求、恢复){ post_model.getHomePosts('1',函数(err,行){ 变量局部变量={}; 异步并行([ 函数(回调),node.js,asynchronous,Node.js,Asynchronous,使用async在节点js中执行循环后执行某些函数 module.exports={ getHomePost:函数(请求、恢复){ post_model.getHomePosts('1',函数(err,行){ 变量局部变量={}; 异步并行([ 函数(回调){ 对于(var i=0;i在从循环中获取值之前,我的回调函数会执行。但我想在从for循环中获取输出后执行它。我为您修复了代码格式。下次,在粘贴代码之前,将代码缩进四个空格,而不是将每一行都用反勾括起来。谢谢andreas hultgrendo

使用async在节点js中执行循环后执行某些函数
module.exports={
getHomePost:函数(请求、恢复){
post_model.getHomePosts('1',函数(err,行){
变量局部变量={};
异步并行([
函数(回调){

对于(var i=0;i在从循环中获取值之前,我的回调函数会执行。但我想在从for循环中获取输出后执行它。我为您修复了代码格式。下次,在粘贴代码之前,将代码缩进四个空格,而不是将每一行都用反勾括起来。谢谢andreas hultgrendo,您知道如何解决这个问题吗oks,就像你试图获取数据来呈现主页,或者类似的东西,在那里需要从各种查询中获取数据。我相信有更好的“重建”您将拥有一段不像现在这样难以调试的代码。您可以简单地构建一个小型Rest API,让客户端启动多个ajax请求并处理它。我的意思是,您很容易在接下来的一周中迷失在这段代码中。。
module.exports= {
  getHomePost:function(req,res) {
    post_model.getHomePosts('1',function(err,rows) {
      var locals={}; 
      async.parallel([
        function(callback) {
          for(var i=0;i<rows.length-1;i++) {
            async.series([ 
              function(call){
                post_model.getPostDetails(rows[i].Post_Date_Time_id,rows[i].Post_Personid_id,function(err,row) {
                  locals.rows[]=row;
                  call();
               });
              }  
            ],function(err){ 

            //console.log(locals.rows);
            });
          } 
          callback();
        }
      ],function(err) {
        console.log(locals.rows);
        res.render('home',locals);
      });
    });
  }
}