Por que esse loop fs.readFile não está empurrando seus resultados para minha matriz? [duplicado
Esta pergunta já tem uma resposta aqui:
Por que minha variável permanece inalterada depois de modificá-la dentro de uma função? - Referência de código assíncrona respostas#!/usr/bin/env node
var fs = require('fs')
, async = require('async')
, program = require('commander')
program
.version('0.0.1')
.usage('<keywords>')
.parse(process.argv)
async.waterfall([
fs.readdir.bind(fs, __dirname),
parseHTML,
], saveResult)
function parseHTML(files, callback) {
var result = []
files.forEach(function(file) {
if (file.match(/\.html$/)) {
fs.readFile(file, 'utf8', function(err, data) {
if (err) throw err
result.push(data)
})
}
})
callback(null, result)
}
function saveResult(err, result) {
console.log(result)
}
Estou confuso porqueconsole.log(data)
gera os dados:
<p>File 1</p>
<p>File 2</p>
Ainda a finalresult
é uma matriz vazia:[]
Por que estou fazendo errado?