Node.js arbeitet auf einer ereignisgesteuerten Single-Thread-Architektur, was bedeutet, dass es viele Vorgänge gleichzeitig verarbeiten kann, ohne den Haupt-Thread zu blockieren. Dies ist entscheidend für die Erstellung skalierbarer Anwendungen, bei denen Aufgaben wie E/A-Vorgänge (Dateien lesen, Datenbanken abfragen usw.) asynchron erfolgen müssen, um eine Blockierung der Ausführung anderen Codes zu vermeiden.
Synchroner Code führt einen Schritt nach dem anderen aus, was bedeutet, dass jeder Schritt abgeschlossen sein muss, bevor mit dem nächsten fortgefahren werden kann. Dies kann den Hauptthread blockieren, wenn Vorgänge langsam sind (z. B. das Lesen einer großen Datei oder das Abfragen einer Datenbank).
Beispiel (synchroner Code):
const fs = require('fs'); const data = fs.readFileSync('file.txt', 'utf8'); console.log(data);
Asynchroner Code hingegen blockiert nicht den Hauptthread. Anstatt auf den Abschluss eines Vorgangs zu warten, setzt das Programm die Ausführung fort und verarbeitet das Ergebnis des asynchronen Vorgangs, wenn es bereit ist.
Beispiel (Asynchroner Code):
const fs = require('fs'); // Call Back fs.readFile('file.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data); }); console.log('This will log before the file content!');
Asynchron/Warten
Async/await wurde in ES2017 (Node.js 7.6+) eingeführt und ist syntaktischer Zucker, der auf Versprechen basiert. Es ermöglicht das Schreiben von asynchronem Code auf synchrone Weise, wodurch er besser lesbar und einfacher zu warten ist.
Beispiel (Asynchron/Warten):
const fs = require('fs').promises; async function readFile() { try { const data = await fs.readFile('file.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
Die Wahl von asynchronem oder synchronisiertem Code hängt von Ihrem Anwendungsfall ab. Bevorzugen Sie bei E/A-intensiven Vorgängen immer asynchrone Muster, damit der Hauptthread nicht blockiert und Ihre Anwendung reaktionsfähig bleibt.
Vielen Dank fürs Lesen und viel Spaß beim Programmieren! ?
Das obige ist der detaillierte Inhalt vonAsynchrone Muster in Node.js – Node.js-Tutorial – Teil 6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!