我有一个以异步方式运行的grunt任务(使用this.async),因为我在代码中有异步函数。我也想要几个串口运行的任务,所以我使用异步npm模块的async.series。 问题是,当我到达async.series的最后一个回调,即函数(错误,结果)时,我调用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'
有时也会成功。任何输入都表示赞赏。 感谢
P.S。这些函数都没有返回错误。中的错误对象 最后一次回调始终为 null 。
答案 0 :(得分:0)
感谢您的帮助@RodrigoMedeiros。是的,你是对的,我试图在其中一个功能中要求一个模块,并且它表现得出乎意料。解决方法是仅检查由于grunt任务的异步执行而导致哪些语句可能导致错误。在我的情况下,我删除了这些陈述,它们是不必要的。