异步grunt任务内的async.series

我有一个异步运行的grunt任务(使用this.async),因为我在代码中具有异步功能。 我也希望有几个任务能够串行运行,所以我使用async npm模块中的async.series。 问题是,当我到达async.series的最后一个回调,即function(err,result)时,我调用done()来通知异步grunt任务已成功完成,有时会失败并且有时会传递。 我似乎无法理解它。 代码如下:

grunt.registerTask('aggCompJSON', function(){
  var done = this.async();
  var resultFile = {};  // final JSON object
  var groupJSON = {};   // groups JSON object

  async.series([
    function(callback){
        // get Application Configuration
        __getAppConfig(grunt, callback);
    },

    function(callback){
        // generate Component_map
        __genCompMap(grunt, callback);
    }
  ], function (err, result){
        done();
    }
  );

我收到以下错误:

致命错误:ENOENT,打开'logs / app.log'

有时也会成功。 任何输入赞赏。 谢谢

PS这些功能都不会返回错误。 上次回调中的err对象始终为


感谢您的帮助@RodrigoMedeiros。 是的你是对的,我试图在一个功能中需要一个模块,并且它的行为出乎意料。 解决方法是检查哪些语句可能会因为异步执行grunt任务而导致错误。 在我的情况下,我删除了这些陈述,他们是不必要的。

链接地址: http://www.djcxy.com/p/55485.html

上一篇: async.series inside an asynchronous grunt task

下一篇: Nesting node async.eachSeries