


Lassen Sie uns darüber sprechen, wie Sie asynchrone Funktionen in Node verwenden
Mit der neuen Version der V8-Engine unterstützt Node asynchrone Funktionsfunktionen ab 7.6. Am 31. Oktober dieses Jahres wurde auch Node.js 8 zu einer neuen Langzeit-Support-Version, sodass Sie asynchrone Funktionen bedenkenlos in Ihrem Code verwenden können. In diesem Artikel werde ich kurz vorstellen, was asynchrone Funktionen sind und wie sie die Art und Weise verändern können, wie wir Node.js-Anwendungen schreiben.
Was ist eine asynchrone Funktion?
Mit der asynchronen Funktion können Sie Promise-basierten asynchronen Code genau wie synchronen Code schreiben. Sobald Sie eine Funktion mit dem Schlüsselwort „async“ definiert haben, können Sie das Schlüsselwort „await“ innerhalb der Funktion verwenden. Wenn eine asynchrone Funktion aufgerufen wird, gibt sie ein Promise zurück. Wenn die asynchrone Funktion einen Wert zurückgibt, wird das Versprechen erfüllt; wenn in der Funktion ein Fehler ausgegeben wird, wird das Versprechen abgelehnt. [Verwandte Tutorial-Empfehlungen: nodejs-Video-Tutorial, Programmierlehre]
await-Schlüsselwort kann verwendet werden, um auf die Auflösung eines Versprechens zu warten und seinen implementierten Wert zurückzugeben. Wenn der an „await“ übergebene Wert kein Promise ist, wird der Wert in ein aufgelöstes Promise konvertiert.
const rp = require('request-promise') async function main () { const result = await rp('https://google.com') const twenty = await 20 // 睡个1秒钟 await new Promise (resolve => { setTimeout(resolve, 1000) }) return result } main() .then(console.log) .catch(console.error)
Migrieren Sie zu asynchronen Funktionen
Wenn Ihre Node.js-Anwendung Promise bereits verwendet, müssen Sie nur den ursprünglichen Kettenaufruf neu schreiben, um auf Ihr Promise zu warten.
Wenn Ihre Anwendung noch Rückruffunktionen verwendet, sollten Sie schrittweise auf die Verwendung asynchroner Funktionen umsteigen. Sie können diese neue Technologie bei der Entwicklung einiger neuer Funktionen nutzen. Wenn Sie alten Code aufrufen müssen, können Sie ihn einfach in ein Promise einbinden und auf die neue Art aufrufen.
Dazu können Sie die integrierte util.promisify-Methode verwenden:
const util = require('util') const {readFile} = require('fs') const readFileAsync = util.promisify(readFile) async function main () { const result = await readFileAsync('.gitignore') return result } main() .then(console.log) .catch(console.error)
3 Best Practices für asynchrone Funktionen
Verwenden Sie asynchrone Funktionen in Express.
express unterstützt von Natur aus Promise, sodass asynchrone Funktionen in verwendet werden Express ist relativ einfach:
const express = require('express') const app = express() app.get('/', async (request, response) => { // 在这里等待 Promise // 如果你只是在等待一个单独的 Promise,你其实可以直接将将它作为返回值返回,不需要使用 await 去等待。 const result = await getContent() response.send(result) }) app.listen(process.env.PORT)
Aber wie Keith Smith betonte, weist das obige Beispiel ein ernstes Problem auf: Wenn das Versprechen schließlich abgelehnt wird, da es hier keine Fehlerbehandlung gibt, wird dieser Express-Routing-Prozess angehalten Der Server wird angehalten.
Um dieses Problem zu beheben, sollten Sie Ihren asynchronen Handler in eine Funktion einschließen, die Fehler behandelt:
const awaitHandlerFactory = (middleware) => { return async (req, res, next) => { try { await middleware(req, res, next) } catch (err) { next(err) } } } // 然后这样使用: app.get('/', awaitHandlerFactory(async (request, response) => { const result = await getContent() response.send(result) }))
Parallele Ausführung
Angenommen, Sie schreiben ein Programm, bei dem eine Operation zwei Eingaben erfordert, eine aus der Datenbank und die andere von ein externer Dienst:
async function main () { const user = await Users.fetch(userId) const product = await Products.fetch(productId) await makePurchase(user, product) }
Was passiert in diesem Beispiel?
Ihr Code erhält zuerst den Benutzer,
dann das Produkt,
und schließlich die Zahlung.
Da es keine gegenseitige Abhängigkeit zwischen den ersten beiden Schritten gibt, können Sie diese tatsächlich parallel ausführen. Hier sollten Sie die Promise.all-Methode verwenden:
async function main () { const [user, product] = await Promise.all([ Users.fetch(userId), Products.fetch(productId) ]) await makePurchase(user, product) }
Manchmal benötigen Sie nur den Rückgabewert des am schnellsten aufgelösten Promise – in diesem Fall können Sie die Promise.race-Methode verwenden.
Weitere Informationen zu Knoten finden Sie unter: nodejs-Tutorial!
Das obige ist der detaillierte Inhalt vonLassen Sie uns darüber sprechen, wie Sie asynchrone Funktionen in Node verwenden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

async ist es7. Async und Wait sind neue Ergänzungen zu ES7 und Lösungen für asynchrone Vorgänge. Man kann sagen, dass Async/Await syntaktischer Zucker für Co-Module und Generatorfunktionen ist und js asynchronen Code mit klarerer Semantik löst. Wie der Name schon sagt, bedeutet Async „asynchron“. Async wird verwendet, um zu deklarieren, dass eine Funktion asynchron ist. Es gibt eine strikte Regel zwischen Async und Wait.

Wie gehe ich mit dem Datei-Upload um? Der folgende Artikel stellt Ihnen vor, wie Sie Express zum Hochladen von Dateien im Knotenprojekt verwenden. Ich hoffe, er ist hilfreich für Sie!

So löschen Sie einen Knoten mit nvm: 1. Laden Sie „nvm-setup.zip“ herunter und installieren Sie es auf dem Laufwerk C. 2. Konfigurieren Sie Umgebungsvariablen und überprüfen Sie die Versionsnummer mit dem Befehl „nvm -v“. install“-Befehl Knoten installieren; 4. Löschen Sie den installierten Knoten über den Befehl „nvm uninstall“.

In diesem Artikel stellen wir Ihnen das Prozessmanagement-Tool „pm2“ von Node vor und sprechen darüber, warum PM2 benötigt wird und wie Sie PM2 installieren und verwenden. Ich hoffe, dass es für alle hilfreich ist!

Detaillierte Erläuterungs- und Installationshandbuch für Pinetwork -Knoten In diesem Artikel wird das Pinetwork -Ökosystem im Detail vorgestellt - PI -Knoten, eine Schlüsselrolle im Pinetwork -Ökosystem und vollständige Schritte für die Installation und Konfiguration. Nach dem Start des Pinetwork -Blockchain -Testnetzes sind PI -Knoten zu einem wichtigen Bestandteil vieler Pioniere geworden, die aktiv an den Tests teilnehmen und sich auf die bevorstehende Hauptnetzwerkveröffentlichung vorbereiten. Wenn Sie Pinetwork noch nicht kennen, wenden Sie sich bitte an was Picoin ist? Was ist der Preis für die Auflistung? PI -Nutzung, Bergbau und Sicherheitsanalyse. Was ist Pinetwork? Das Pinetwork -Projekt begann 2019 und besitzt seine exklusive Kryptowährung PI -Münze. Das Projekt zielt darauf ab, eine zu erstellen, an der jeder teilnehmen kann

Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg ein Node-Projekt in eine ausführbare Datei packen. Ich hoffe, dass er Ihnen weiterhilft!

npm node gyp schlägt fehl, weil „node-gyp.js“ nicht mit der Version von „Node.js“ übereinstimmt. Die Lösung ist: 1. Löschen Sie den Knotencache über „npm cache clean -f“ 2. Über „npm install -“ g n“ Installieren Sie das n-Modul. 3. Installieren Sie die Version „node v12.21.0“ über den Befehl „n v12.21.0“.

Die Authentifizierung ist einer der wichtigsten Teile jeder Webanwendung. In diesem Tutorial werden tokenbasierte Authentifizierungssysteme und ihre Unterschiede zu herkömmlichen Anmeldesystemen erläutert. Am Ende dieses Tutorials sehen Sie eine voll funktionsfähige Demo, die in Angular und Node.js geschrieben wurde. Traditionelle Authentifizierungssysteme Bevor wir zu tokenbasierten Authentifizierungssystemen übergehen, werfen wir einen Blick auf traditionelle Authentifizierungssysteme. Der Benutzer gibt seinen Benutzernamen und sein Passwort im Anmeldeformular ein und klickt auf „Anmelden“. Nachdem Sie die Anfrage gestellt haben, authentifizieren Sie den Benutzer im Backend, indem Sie die Datenbank abfragen. Wenn die Anfrage gültig ist, wird eine Sitzung mit den aus der Datenbank erhaltenen Benutzerinformationen erstellt und die Sitzungsinformationen werden im Antwortheader zurückgegeben, sodass die Sitzungs-ID im Browser gespeichert wird. Bietet Zugriff auf Anwendungen, die unterliegen
