Heim > Artikel > Web-Frontend > Wie verwende ich Async/Await mit Rückrufen 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; }); }
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' ); }
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)); }); }
Mit dieser Änderung kann die Funktion „test“ jetzt wie folgt geschrieben werden:
async function test() { return await apiOn( 'someEvent' ); }
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 }
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!