Node.js ist eine JavaScript-Laufumgebung, die auf der Chrome V8-Engine aufbaut und auf einem ereignisgesteuerten, nicht blockierenden I/O-Modell basiert, was eine gute Leistung bei der Verarbeitung großer Datensammlungen und hoher gleichzeitiger Anforderungen gewährleistet. In einigen Fällen müssen wir jedoch synchrone Anfragen stellen, da wir warten müssen, bis die vorherige Anfrage abgeschlossen ist, bevor wir die nächste Anfrage stellen können, was einige besondere Fähigkeiten erfordert, um synchrone Anfragen zu stellen.
Es gibt viele Möglichkeiten, synchrone Anfragen in Node.js zu stellen. Zu den gängigeren Methoden gehören: die Verwendung von Rückrufen, die Verwendung von Promise und die Verwendung von async/await. Die Verwendung dieser Methoden wird hier vorgestellt.
Die früheste asynchrone Verarbeitungsmethode in Node.js ist die Rückruffunktion. Nachfolgende Vorgänge können in der Rückruffunktion ausgeführt werden oder die Rückruffunktion kann als Wert an andere Funktionen übergeben werden. Eine Callback-Funktion ist eine JavaScript-Funktion, die eine andere Funktion innerhalb der Funktion aufrufen kann.
Wenn Sie eine synchrone Anfrage stellen, können Sie die Rückruffunktion verwenden, um sicherzustellen, dass die Anfrage abgeschlossen ist, bevor Sie andere Vorgänge ausführen. Zum Beispiel:
const request = require('request'); request('https://jsonplaceholder.typicode.com/todos/1', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body) // 输出请求得到的结果 } })
Im obigen Beispiel haben wir das Anfragemodul verwendet, um Anfragen zu stellen und die Ergebnisse an die Konsole auszugeben. Da die Rückruffunktion asynchron verarbeitet wird, müssen wir nachfolgende Vorgänge in der Rückruffunktion ausführen. Dadurch wird sichergestellt, dass nach Abschluss der Anforderung weitere Vorgänge ausgeführt werden können.
Promise ist eine fortschrittlichere Methode der asynchronen Verarbeitung, die flexibleren und lesbareren Code bietet. Ein Promise stellt den eventuellen Abschluss oder Misserfolg eines asynchronen Vorgangs dar und gibt einen Wert zurück. Es vereinfacht die Komplexität von asynchronem Code und unterstützt verkettete Aufrufe.
Wenn Sie Promise verwenden, um synchrone Anfragen zu stellen, können Sie das Request-Promise-Modul verwenden. Dieses Modul ist die Promise-Version des Anforderungsmoduls, mit der Anforderungsanforderungen problemlos in Promise-Objekte umgewandelt werden können, um synchrone Anforderungen zu implementieren. Zum Beispiel:
const rp = require('request-promise'); rp('https://jsonplaceholder.typicode.com/todos/1') .then(function (response) { console.log(response); }) .catch(function (err) { console.log(err); });
Im obigen Beispiel haben wir das Request-Promise-Modul verwendet, um die Anfrage zu stellen, und das Promise-Objekt, um das Anfrageergebnis zu verarbeiten. Dadurch wird sichergestellt, dass nach Abschluss der Anforderung weitere Vorgänge ausgeführt werden können.
async/await ist die neueste asynchrone Verarbeitungsmethode in ES2017. Es schreibt asynchronen Code synchroner und macht asynchronen Code dadurch besser lesbar und wartbar.
Wenn Sie async/await verwenden, um synchrone Anfragen zu stellen, müssen Sie das Request-Promise-Modul verwenden. Zum Beispiel:
const rp = require('request-promise'); async function getData() { const result = await rp('https://jsonplaceholder.typicode.com/todos/1'); console.log(result); } getData().catch((err) => { console.error(err); });
Im obigen Beispiel haben wir async/await verwendet, um das Request-Promise-Modul zu kapseln. Durch die Verwendung des Schlüsselworts async kann die Funktion getData() in eine asynchrone Funktion umgewandelt werden. Anschließend verwenden wir das Schlüsselwort „await“, um auf den Abschluss der Anforderung zu warten, bevor wir andere Vorgänge innerhalb der Funktion ausführen.
Zusammenfassung
Als leistungsstarke serverseitige Sprache hat Node.js seine asynchronen Verarbeitungsfähigkeiten voll ausgeschöpft. In einigen Fällen sind jedoch synchrone Anforderungen erforderlich. In diesem Fall können wir Rückrufe, Promise und async/await verwenden, um synchrone Anforderungen zu stellen. In der tatsächlichen Entwicklung kann die am besten geeignete Methode entsprechend der tatsächlichen Situation ausgewählt werden.
Das obige ist der detaillierte Inhalt vonnodejs synchrone Anfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!