Heim > Web-Frontend > js-Tutorial > Hauptteil

Wie verwende ich Async/Await mit Rückrufen in JavaScript?

Linda Hamilton
Freigeben: 2024-10-30 11:11:05
Original
554 Leute haben es durchsucht

 How to Utilize Async/Await with Callbacks in JavaScript?

Warten auf Rückruflösung

In einem Szenario, in dem ein einfacher Rückruf verwendet wird, wie im folgenden Beispiel:

test() {
  api.on( 'someEvent', function( response ) {
    return response;
  });
}
Nach dem Login kopieren

Die Konvertierung dieser Funktion zur Verwendung von async/await erfordert eine geringfügige Änderung. Unter der Annahme, dass „someEvent“ garantiert nur einmal aufgerufen wird, kann die „test“-Funktion in eine asynchrone Funktion umgewandelt werden, die auf die Ausführung des Rückrufs wartet:

async test() {
  return await api.on( 'someEvent' );
}
Nach dem Login kopieren

Async/await ist jedoch nicht von Natur aus fähig Rückrufe direkt zu bearbeiten. Um diese Lücke zu schließen, muss api.on() neu gestaltet werden, um ein Versprechen zurückzugeben. Hier ist ein Beispiel:

function apiOn(event) {
  return new Promise(resolve => {
    api.on(event, response => resolve(response));
  });
}
Nach dem Login kopieren

Mit dieser Änderung kann die Funktion „test“ jetzt wie folgt geschrieben werden:

async function test() {
  return await apiOn( 'someEvent' ); 
}
Nach dem Login kopieren

Bitte beachten Sie, dass das Schlüsselwort „await“ in diesem Zusammenhang im Wesentlichen optional ist. da jeder Ansatz immer noch dazu führt, dass ein Versprechen zurückgegeben wird.

Abschließend ist es wichtig, sich daran zu erinnern, dass asynchrone Funktionen selbst Versprechen zurückgeben. Daher ist ein direkter Zugriff auf den von „test()“ zurückgegebenen Wert nicht möglich. Stattdessen muss das zurückgegebene Versprechen behandelt werden:

async function whatever() {
  // snip
  const response = await test();
  // use response here
  // snip
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie verwende ich Async/Await mit Rückrufen in JavaScript?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!