Warum überträgt diese fs.readFile-Schleife ihre Ergebnisse nicht auf mein Array? [Duplikat
Diese Frage hat hier bereits eine Antwort:
Warum bleibt meine Variable unverändert, nachdem ich sie innerhalb einer Funktion geändert habe? - Asynchrone Codereferenz 6 answers#!/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)
}
Ich bin verwirrt, weilconsole.log(data)
gibt die Daten aus:
<p>File 1</p>
<p>File 2</p>
Yet the finalresult
ist ein leeres Array:[]
Warum mache ich falsch?