Heim >Web-Frontend >js-Tutorial >Was sind die Rückgabewerte von Async-Funktionen und in welcher Beziehung stehen sie zu Versprechen?

Was sind die Rückgabewerte von Async-Funktionen und in welcher Beziehung stehen sie zu Versprechen?

DDD
DDDOriginal
2024-10-18 10:35:29554Durchsuche

What Are the Return Values of Async Functions and How Do They Relate to Promises?

Asynchrone Funktionen: Rückgabewerte und Versprechen verstehen

Während asynchrone Funktionen es Ihnen ermöglichen, Code in einem synchronen Stil zu schreiben, geben sie von Natur aus Versprechen zurück. Dies kann zu Verwirrung hinsichtlich des Rückgabewerts Ihres Codes führen.

Promises: Ein kurzer Überblick

Promises sind Objekte, die den eventuellen Abschluss oder Misserfolg eines asynchronen Vorgangs darstellen . Sie bieten zwei Schlüsselmethoden:

  • then(resolve, ablehn): Verarbeitet das Ergebnis des Vorgangs, wenn er erfolgreich ist (resolve) oder einen Fehler erkennt (reject).
  • catch( Reject): Behandelt Fehler asynchron.

Asynchrone Funktionen und Versprechen

Asynchrone Funktionen geben immer ein Versprechen zurück, auch wenn Sie das Schlüsselwort „await“ nicht explizit verwenden . Dieses Versprechen stellt das Ergebnis des asynchronen Vorgangs dar. Wenn die Funktion einen Fehler auslöst, wird das Versprechen mit diesem Fehler abgelehnt.

Verwendung:

Versprechen mit Rückruffunktionen:

<code class="javascript">const myAsyncFunction = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
};

myAsyncFunction()
  .then(result => {
    console.log(`Callback Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>

Versprechen mit Async/Await:

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Asynchronous value');
    }, 1000);
  });
  return result;
}

myAsyncFunction()
  .then(result => {
    console.log(`Await Result: ${result}`);
  })
  .catch(error => {
    console.log(`Error: ${error}`);
  });</code>

In diesen Beispielen gibt die myAsyncFunction ein Versprechen zurück, das nach einer Verzögerung von 1 Sekunde mit dem Wert „Asynchroner Wert“ aufgelöst wird . Die Methoden then und Catch behandeln den gelösten bzw. abgelehnten Status.

Das Versprechen zurückgeben

Wenn Sie das Versprechen selbst ohne Änderungen zurückgeben möchten, können Sie dies einfach tun write:

<code class="javascript">const myAsyncFunction = () => {
  return new Promise(...);
};</code>

Einen geänderten Wert zurückgeben

Um einen geänderten Wert von einer asynchronen Funktion zurückzugeben, müssen Sie das Promise-Ergebnis innerhalb der then-Methode verarbeiten und zurückgeben der geänderte Wert. Zum Beispiel:

<code class="javascript">async function myAsyncFunction() {
  const result = await new Promise(...);
  return result.toUpperCase();
}</code>

Diese Funktion gibt ein Versprechen zurück, das mit der Großbuchstabenversion des Ergebnisses aufgelöst wird.

Das obige ist der detaillierte Inhalt vonWas sind die Rückgabewerte von Async-Funktionen und in welcher Beziehung stehen sie zu Versprechen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn