var content;
fs.readFile('./Index.html', function read(err, data) {
if (err) {
throw err;
}
content = data;
});
console.log(content);
Protokolle undefined
warum?
var content;
fs.readFile('./Index.html', function read(err, data) {
if (err) {
throw err;
}
content = data;
});
console.log(content);
Protokolle undefined
warum?
Grob gesagt, haben Sie es mit Node.js zu tun, das von Natur aus asynchron ist.
Wenn wir von Asynchronität sprechen, meinen wir die Verarbeitung von Informationen oder Daten, während wir mit etwas anderem beschäftigt sind. Es ist nicht gleichbedeutend mit parallel, bitte denken Sie daran.
Ihr Code:
var content;
fs.readFile('./Index.html', function read(err, data) {
if (err) {
throw err;
}
content = data;
});
console.log(content);
Bei Ihrem Beispiel wird im Grunde zuerst der console.log-Teil ausgeführt, so dass die Variable "content" undefiniert ist.
Wenn Sie die Ausgabe wirklich wollen, machen Sie stattdessen etwas wie das hier:
var content;
fs.readFile('./Index.html', function read(err, data) {
if (err) {
throw err;
}
content = data;
console.log(content);
});
Dies ist ein asynchroner Vorgang. Es wird schwer sein, sich daran zu gewöhnen, aber es ist, was es ist. Auch dies ist eine grobe, aber schnelle Erklärung, was async ist.
Ich benutze gerne fs-extra weil alle Funktionen sofort nach dem Auspacken zur Verfügung stehen, so dass Sie sie nutzen können await
. Ihr Code könnte also wie folgt aussehen:
(async () => {
try {
const content = await fs.readFile('./Index.html');
console.log(content);
} catch (err) {
console.error(err);
}
})();
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.