Asynchrone Funktionen zu Promises

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 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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript(("JavaScript")) -.-> javascript/ToolsandEnvironmentGroup(["Tools and Environment"]) javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/AdvancedConceptsGroup -.-> javascript/async_prog("Asynchronous Programming") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") javascript/ToolsandEnvironmentGroup -.-> javascript/debugging("Debugging") subgraph Lab Skills javascript/variables -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/data_types -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/arith_ops -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/comp_ops -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/async_prog -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/spread_rest -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} javascript/debugging -.-> lab-28559{{"Asynchrone Funktionen zu Promises"}} end

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.