Я использую модуль caolan 'async' , чтобы открыть массив имен файлов (в данном случае, имен файлов шаблонов).
Согласно документации, я использую async.forEach () , поэтому я могу запустить обратный вызов после завершения всех операций.
Простой тестовый пример:
var async = require('async')
var fs = require('fs')
file_names = ['one','two','three'] // all these files actually exist
async.forEach(file_names,
function(file_name) {
console.log(file_name)
fs.readFile(file_name, function(error, data) {
if ( error) {
console.log('oh no file missing')
return error
} else {
console.log('woo '+file_name+' found')
}
})
}, function(error) {
if ( error) {
console.log('oh no errors!')
} else {
console.log('YAAAAAAY')
}
}
)
Вывод выглядит следующим образом:
one
two
three
woo one found
woo two found
woo three found
Т.е. кажется, что окончательный обратный вызов не срабатывает.Что мне нужно сделать, чтобы окончательный ответный вызов сработал?