Ein Callback-Ergebnis verwenden
Teil des Abschnitts Node.js-Grundlagen der Node.js-Journey von Coddy. Lektion 17 von 33.
Das Einlesen einer Datei kann abgeschlossen sein, nachdem die nächste Zeile deines Programms bereits ausgeführt wurde. Eine Rückruffunktion ist eine Funktion, die einer anderen Funktion übergeben wird, damit diese sie später aufruft. readFile ruft deine Funktion auf, sobald die Datei bereit ist. Zuerst übergibt sie einen Fehler und danach den Dateiinhalt.
readFile('greeting.txt', 'utf8', (err, text) => {
if (err) return;
console.log(text);
});Führe Arbeiten, die den Text benötigen, innerhalb dieser Funktion aus. Außerhalb davon ist der Text noch nicht angekommen. Der Startcode stellt den Import und eine Fehlerbehandlung bereit; konzentriere dich darauf, das erfolgreiche Ergebnis zu verwenden.
Aufgabe
EinfachFühre zuerst practice.js aus. Es schlägt fehl, weil text noch undefiniert ist, wenn die letzte Zeile ausgeführt wird; das Lesen der Datei ist noch nicht abgeschlossen.
Verschiebe die Arbeit, die den Dateitext benötigt, an die Stelle, an der das Lesen abgeschlossen ist. Gib den Inhalt in Großbuchstaben aus und behalte den Fehlerzweig bei. Entferne die äußere text-Variable, wenn sie nicht mehr benötigt wird. Ohne Argument erwarte BUY MILK. Mit other.txt erwarte CALL ADA.
Probier es selbst
import { readFile } from 'node:fs';
const file = process.argv[2] ?? 'note.txt';
let text;
readFile(file, 'utf8', (err, contents) => {
if (err) return;
text = contents;
});
console.log(text.toUpperCase());
Alle Lektionen in Node.js-Grundlagen
1JavaScript mit Node ausführen
Hallo, NodeDen Befehl lesenKommandozeilenargumenteBefehle4Asynchrones Node
Ein Callback-Ergebnis verwendenCallbacksEin Promise-ErgebnisWenn ein Promise fehlschlägtPromisesAuf einen Wert wartenAsync und AwaitZwei unabhängige LesevorgängePromise.allDer Event LoopTimerÜbe selbstständig: Express-Playground