Pipe Async Functions

JavaScriptJavaScriptBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab werden wir das Konzept der Funktionskomposition in der asynchronen Programmierung mit JavaScript erkunden. Wir werden lernen, wie die pipeAsyncFunctions-Funktion verwendet wird, um eine Reihe asynchroner Funktionen zu kombinieren, die einen einzelnen Argument akzeptieren und eine Kombination aus normalen Werten, Promises oder async-Funktionen zurückgeben können. Am Ende dieses Labs werden Sie eine solide Vorstellung davon haben, wie die Funktionskomposition verwendet wird, um effizientere und lesbarere asynchrone Code zu schreiben.

Wie man asynchrone Funktionen in JavaScript verknüpft

Um mit der Programmierung in JavaScript zu beginnen, öffnen Sie das Terminal/SSH und geben Sie node ein. Nachdem Sie sich mit den Grundlagen vertraut gemacht haben, können Sie mit asynchronen Funktionen beginnen.

Die pipeAsyncFunctions-Funktion ermöglicht es Ihnen, eine linksbis-rechts-Funktionskomposition mit asynchronen Funktionen durchzuführen. So funktioniert es:

  • Die Funktion nimmt beliebig viele asynchrone Funktionen als Argumente entgegen.
  • Der Spread-Operator (...) wird verwendet, um diese Funktionen als separate Argumente an die pipeAsyncFunctions-Funktion zu übergeben.
  • Die resultierende Funktion kann beliebig viele Argumente akzeptieren, aber jede der zu kombinierenden Funktionen muss genau ein Argument akzeptieren.
  • Die Funktionen können eine Kombination aus normalen Werten, Promises zurückgeben oder async sein und durch await zurückgeben.
  • Die reduce()-Methode wird zusammen mit Promise.prototype.then() verwendet, um die Funktionskomposition durchzuführen.
  • Die reduce()-Methode iteriert über die Funktionen, führt jede in Reihe aus und übergibt das Ergebnis einer Funktion an die nächste.
  • Das resultierende Promise wird zurückgegeben.

Hier ist ein Beispiel dafür, wie man pipeAsyncFunctions verwendet, um eine Zahl zu addieren:

const sum = pipeAsyncFunctions(
  (x) => x + 1,
  (x) => new Promise((resolve) => setTimeout(() => resolve(x + 2), 1000)),
  (x) => x + 3,
  async (x) => (await x) + 4
);
(async () => {
  console.log(await sum(5)); // 15 (nach einer Sekunde)
})();

In diesem Beispiel besteht sum aus vier Funktionen, die unterschiedliche Werte zur Eingabzahl hinzufügen. Der endgültige Wert von sum ist das Ergebnis der sequentiellen Ausführung jeder Funktion, wobei die zweite Funktion eine Verzögerung von einer Sekunde hat. Das async-Schlüsselwort wird mit der letzten Funktion verwendet, um die Verwendung von await zu ermöglichen.

Durch die Verwendung von pipeAsyncFunctions können Sie beliebig viele asynchrone Funktionen leicht zusammenfügen, um komplexere Funktionalität zu schaffen.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Lab zu asynchronen Funktionen verknüpft abgeschlossen. Sie können in LabEx weitere Labs absolvieren, um Ihre Fähigkeiten zu verbessern.