Dies ist eine alte Version des Dokuments!
LU01b - Synchrone VS Asynchrone Verarbeitung
Grundsätzlich gibt es zwei Varianten in JS, wie Daten eingelesen werden können:
- Synchron
- Asychron
Beim synchronen Einlesen wartet JavaScript, bis die Datei komplett gelesen wurde – und macht in der Zeit gar nichts anderes. Beim asynchronen Einlesen liest Node.js die Datei im Hintergrund ein und kann waehrenddessen weiterarbeiten. Das eine blockiert, das andere nicht.
Die nachfolgende Tabelle zeigt die wesentlichen Unterschiede
| Art | Verhalten | Vorteil | Nachteil |
|---|---|---|---|
| synchron (`readFileSync`) | Programm pausiert, bis Datei fertig eingelesen ist | einfach, gut fuers schnelle Rumprobieren | blockiert den gesamten Ablauf – bei grossen Dateien oder vielen Zugriffen fatal |
| asynchron (`readFile`) | Datei wird im Hintergrund gelesen, Code kann weiterlaufen | performant, ideal fuer Server/mehrere Zugriffe | Rueckgabewert kommt erst spaeter per Callback/Promise |
Beispiel für Synchrones Einlesen
const fs = require("fs");
const daten = fs.readFileSync("data.json", "utf8");
console.log("Weiter gehts erst, wenn das oben fertig ist.");
Beispiel für Asynchrones Einlesen
const fs = require("fs");
fs.readFile("data.json", "utf8", (err, daten) => {
console.log("Ich komme spaeter – Datei ist jetzt fertig eingelesen.");
});
console.log("Dieser Text erscheint direkt danach – ohne warten.");
