异步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