Node.js ist eine sehr beliebte Plattform zum Erstellen schneller, skalierbarer Webanwendungen. Als ereignisgesteuerte Technologie implementiert Node.js nicht blockierende I/O-Operationen sehr gut durch Callback-Funktionen. Manchmal fragen wir uns jedoch, wie wir entscheiden sollen, wann Rückrufe verwendet werden sollen.
In diesem Artikel besprechen wir Rückrufe in Node.js und wann Rückruffunktionen verwendet werden sollten.
Was ist der Rückruf?
Ein Rückruf ist eine Funktion, die ausgeführt wird, nachdem die asynchrone Funktion erfolgreich abgeschlossen wurde. Das bedeutet, dass wir, wenn wir eine asynchrone Operation ausführen müssen, eine Rückruffunktion an die Operation übergeben und sie nach erfolgreichem Abschluss ausführen können. Auf diese Weise können wir asynchrone Vorgänge verarbeiten, ohne den Prozess zu blockieren.
In Node.js werden Rückruffunktionen häufig zusammen mit Ereignisschleifen verwendet. Die Ereignisschleife wartet kontinuierlich darauf, dass die Rückruffunktion ausgelöst wird, und führt nach Abschluss der Rückruffunktion weiterhin anderen Code aus.
In welchen Situationen werden Rückrufe eingesetzt?
Callback-Funktionen sind bei der asynchronen Programmierung sehr nützlich. Hier sind einige Situationen, in denen Rückrufe verwendet werden:
Beim Lesen oder Schreiben von Dateien müssen wir normalerweise asynchrone Vorgänge ausführen. Zu diesem Zeitpunkt können wir Rückrufe verwenden, um Vorgänge abzuwickeln, nachdem das Lesen oder Schreiben der Datei abgeschlossen ist. Wenn Sie beispielsweise die fs-Bibliothek für Dateioperationen in Node.js verwenden, könnte der Code zum Lesen der Datei so aussehen:
const fs = require('fs'); fs.readFile('/path/to/file', (err, data) => { if (err) throw err; console.log(data); });
In diesem Beispiel übergeben wir eine Callback-Funktion als Parameter. Wenn das Lesen der Datei abgeschlossen ist, wird die Rückruffunktion ausgelöst und der Dateiinhalt wird gedruckt.
In Node.js müssen wir normalerweise mit der Datenbank interagieren. Wenn wir Daten aus der Datenbank lesen oder schreiben müssen, ist es besser, Rückruffunktionen zu verwenden. Das Abfragen einer MongoDB-Datenbank mithilfe einer Callback-Funktion in Mongoose könnte beispielsweise so aussehen:
const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test'); const db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function() { // we're connected! const kittySchema = new mongoose.Schema({ name: String }); const Kitten = mongoose.model('Kitten', kittySchema); Kitten.find(function (err, kittens) { if (err) return console.error(err); console.log(kittens); }); });
In diesem Beispiel verwenden wir eine Callback-Funktion, um die MongoDB-Datenbank abzufragen. Nachdem die Abfrage abgeschlossen ist, wird die Rückruffunktion ausgelöst und die Abfrageergebnisse werden gedruckt.
Node.js wird hauptsächlich zum Schreiben von Netzwerkanwendungen verwendet, daher müssen wir häufig Netzwerkoperationen durchführen. Wenn wir eine Anfrage an den Server senden oder Daten empfangen müssen, verwenden wir am besten die Rückruffunktion. Der Code zum Erstellen einer HTTP-Anfrage mithilfe des http-Moduls von Node.js könnte beispielsweise so aussehen:
const http = require('http'); http.get('http://www.google.com/', (res) => { console.log(`Got response: ${res.statusCode}`); res.resume(); }).on('error', (e) => { console.log(`Got error: ${e.message}`); });
In diesem Beispiel haben wir die HTTP-Antwort mithilfe einer Rückruffunktion verarbeitet. Wenn wir die Antwort erhalten, wird die Rückruffunktion ausgelöst und der Antwortstatuscode wird gedruckt.
Zusätzlich zu diesen Szenarien gibt es viele Situationen, in denen Rückruffunktionen verwendet werden können. Beispielsweise eignen sich Rückruffunktionen sehr gut für den Einsatz in der Zeitverarbeitung, Warteschlangenverarbeitung und Protokollierung.
Vor- und Nachteile von Rückrufen
Als eine Form der asynchronen Programmierung haben Rückruffunktionen sicherlich Vor- und Nachteile.
Vorteile:
Nachteile:
Fazit
Callback-Funktionen sind eine Form der asynchronen Programmierung, die in Node.js weit verbreitet ist. Die wichtigste Verwendung von Rückruffunktionen besteht darin, den Rückgabewert nach Abschluss des asynchronen Vorgangs zu verarbeiten. Rückruffunktionen können den Code- und Speicherverbrauch reduzieren, indem sie mehrere asynchrone Vorgänge gleichzeitig verarbeiten, und die Reaktionsgeschwindigkeit des Programms verbessern. Die Verwendung falscher Rückruffunktionen kann jedoch zu komplexem und schwer zu wartendem Code führen, was die Programmleistung beeinträchtigen kann. Setzen Sie Rückruffunktionen daher sparsam ein, um Ihren Code zu optimieren und die Effizienz und Lesbarkeit Ihres Programms zu verbessern.
Das obige ist der detaillierte Inhalt vonWann werden Rückrufe in NodeJS verwendet?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!