Heim > Web-Frontend > js-Tutorial > Gibt async/await in JavaScript immer ein Versprechen zurück und warum?

Gibt async/await in JavaScript immer ein Versprechen zurück und warum?

Barbara Streisand
Freigeben: 2024-12-12 11:54:10
Original
801 Leute haben es durchsucht

Does async/await in JavaScript Always Return a Promise, and Why?

async/await: Promise Unveiled

Promises sind ein grundlegender Aspekt der asynchronen Programmierung in JavaScript. Wenn es um async/await geht, ist es wichtig, die Vorstellung zu entmystifizieren, dass asynchrone Funktionen immer ein Promise zurückgeben.

Das Schlüsselwort „await“, das vor einem Promise-zurückgebenden Funktionsaufruf platziert wird, unterbricht die Ausführung der aktuellen Funktion bis zum Versprechen wird entweder gelöst oder abgelehnt. Diese Aussetzung löst jedoch nicht das Versprechen aus. Das Ergebnis des Promise ist immer noch im zurückgegebenen Promise-Objekt gekapselt.

Betrachten Sie zur Veranschaulichung den folgenden Code, der eine asynchrone Anfrage simuliert:

const getJSON = async () => {
  const request = () => new Promise((resolve, reject) => (
    setTimeout(() => resolve({ foo: 'bar' }), 2000)
  ));

  const json = await request();
  return json;
};
Nach dem Login kopieren

Beim Aufruf von getJSON() wird zurückgegeben ein Versprechen, da die Wait-Anweisung lediglich die Ausführung unterbricht, bis die Anfrage abgeschlossen ist:

console.log(getJSON()); // returns Promise
Nach dem Login kopieren

Im Gegensatz dazu bei der Verkettung .then() wird das Ergebnis des Promise endlich offengelegt:

getJSON().then(json => console.log(json)); // prints { foo: 'bar' }
Nach dem Login kopieren

Warum kann man den Promise-Umbruch nicht mit console.log(getJSON()) umgehen? Dies ist eine grundlegende Eigenschaft von Promises. Versprechen stellen asynchrone Vorgänge dar und ihre Ergebnisse sind erst bekannt, wenn sie aufgelöst oder abgelehnt werden. Der externe Zugriff auf das Ergebnis wird absichtlich unterbunden, um sicherzustellen, dass das Promise der alleinige Vermittler des Ergebnisses bleibt.

Denken Sie daran, dass async/await die Arbeit mit Promises komfortabler macht, indem die Ausführung angehalten wird, wenn Promises angetroffen werden, was jedoch nicht der Fall ist Beseitigen Sie die Notwendigkeit, Versprechen auszupacken, um auf ihre Ergebnisse zuzugreifen.

Das obige ist der detaillierte Inhalt vonGibt async/await in JavaScript immer ein Versprechen zurück und warum?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage