Asynchrone Funktionen zu Promises

Beginner

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

Einführung

In diesem Lab werden wir lernen, wie man eine asynchrone Funktion umwandelt, um eine Promise zurückzugeben, indem man die promisify-Funktion verwendet. Dadurch können wir sauberere und lesbarere Code schreiben, indem wir Callback-Funktionen vermeiden. Wir werden auch die Verwendung von Currying und dem Rest-Operator in JavaScript erkunden.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Anfänger mit einer Abschlussquote von 82% ist. Es hat eine positive Bewertungsrate von 100% von den Lernenden erhalten.

Promisify-Funktion

Um eine asynchrone Funktion zu konvertieren, um eine Promise zurückzugeben, folgen Sie diesen Schritten:

  1. Öffnen Sie das Terminal/SSH und geben Sie node ein, um mit der Code-Praxis zu beginnen.
  2. Verwenden Sie Currying, um eine Funktion zurückzugeben, die eine Promise zurückgibt, die die ursprüngliche Funktion aufruft.
  3. Verwenden Sie den Rest-Operator (...), um alle Parameter zu übergeben.
  4. Wenn Sie Node 8+ verwenden, können Sie util.promisify verwenden.
  5. Hier ist ein Beispiel-Codeausschnitt:
const promisify =
  (func) =>
  (...args) =>
    new Promise((resolve, reject) =>
      func(...args, (err, result) => (err ? reject(err) : resolve(result)))
    );
  1. Um diese Funktion zu verwenden, definieren Sie die asynchrone Funktion und übergeben Sie sie als Parameter an die promisify-Funktion. Die zurückgegebene Funktion wird jetzt eine Promise zurückgeben.
const delay = promisify((d, cb) => setTimeout(cb, d));
delay(2000).then(() => console.log("Hi!")); // Promise löst sich nach 2s auf

Die delay-Funktion ist ein Beispiel einer asynchronen Funktion, die jetzt eine Promise zurückgibt, indem sie die promisify-Funktion verwendet.

Zusammenfassung

Herzlichen Glückwunsch! Sie haben das Promisify-Funktion-Lab abgeschlossen. Sie können in LabEx weitere Labs ausprobieren, um Ihre Fähigkeiten zu verbessern.