async.each中的异步函数不会被触发

时间:2015-11-08 11:40:57

标签: javascript node.js asynchronous

任何人都可以解释下面的控制台日志打印的顺序吗?我使用的是异步版本1.4.23 回复包含两个项目 输出:标签1
        标签2
        标签2
        标签4
        标签3
        标签3

async.parallel([
  function(callback){
    detailsData.list({}, function(err, response) {
      if (!err) {
        console.log("label 1");
        async.each(response, function(item, cb) {
          console.log("label 2");
          itemList.getData(item, function(err, response) {
            console.log("label 3");
            }
            cb(err);
          });
        });
      }
      callback(err);
    });  
  },
  function (callback) {
    somefunction();
  }], function (err) {
    console.log("label 4");
  }  

为什么在标签4之前不打印标签3?

1 个答案:

答案 0 :(得分:1)

您必须将callback的{​​{1}}传递给async.parallel而不是立即调用它,否则并行执行将不会等待每个。

async.each