Я уже несколько часов ударяю головой об этом фрагменте кода. Кроме того, я использовал «async.each« несколько раз раньше. Может быть, код просто нуждается в другом наборе глаз для работы. Вот код и проблема.async.each callback после завершения всех итераций
async.each(process.argv, function(file, callback){
runFile(file, callback);
}, function(err){
console.log("Here is the error!:" + err +"files to unstage: " + filesToUnstage)
if(err)
console.log(err);
else{
if(filesToUnstage) {
__unstage();
}
}
});
runFile:
function runFile(filename, callback) {
// Do a bunch of stuff ....
__parseOutput(output, callback);
}
__parseOutput:
function __parseOutput(output, callback){
//Do some if else statement and do console.log
return callback(null);
}
Проблема: Окончательный обратного вызова, т.е. function(err){..}
из async.each
не вызывается после того, как все итерации закончили.
выполнен ли ваш runFile? Также является process.argv пустым массивом? –
Yup! все выполняется отлично, и я получаю желаемые выходы из всех функций, кроме последнего обратного вызова, как указано выше. Нет 'process.argv' не пуст (перепроверен). – Gautam
В свой '// Делать некоторые инструкции if else и делать console.log', может быть, вы не вызываете свой обратный вызов. – Gepser