Async/Awit ist ein leistungsstarkes Merkmal in modernen JavaScript (und anderen Programmiersprachen wie Python und C#), mit dem Sie asynchronen Code schreiben können, der sich wie synchroner Code aussieht und verhält. Hier erfahren Sie, wie Sie Async/Warten verwenden können, um dies zu erreichen:
Deklarieren Sie eine asynchronisierte Funktion : Um Async/Warten zu verwenden, müssen Sie eine asynchronisierende Funktion definieren. Sie können dies tun, indem Sie vor der Funktionserklärung das async
Schlüsselwort hinzufügen. Hier ist ein Beispiel:
<code class="javascript">async function fetchData() { // Asynchronous operations here }</code>
Verwenden Sie das await
: In einer asynchronen Funktion können Sie das Keyword await
vor einem Versprechen verwenden. Auf diese Weise kann die Funktion die Ausführung innehalten, bis das Versprechen auflöst, und dann wird sie mit dem aufgelösten Wert fortgesetzt. Hier ist ein Beispiel mit der Fetch -API:
<code class="javascript">async function fetchData() { const response = await fetch('https://api.example.com/data'); const data = await response.json(); return data; }</code>
In diesem Beispiel gibt fetch
ein Versprechen zurück, und await
, dass die Funktion wartet, bis das Versprechen auflöst. Nach der Auflösung wird die Antwort mit response.json()
in JSON konvertiert, was ebenfalls ein Versprechen zurückgibt, und await
dass erneut erwartet wird.
Aufrufen der asynchronen Funktion : Um eine asynchronisierte Funktion aufzurufen und ihr Ergebnis zu verarbeiten, können Sie .then()
oder in einer anderen asynchronisierenden Funktion await
. So nennen Sie fetchData
:
<code class="javascript">fetchData().then(data => console.log(data)) .catch(error => console.error('Error:', error)); // or async function useData() { try { const data = await fetchData(); console.log(data); } catch (error) { console.error('Error:', error); } }</code>
Wenn Sie diese Schritte ausführen, können Sie asynchrone Operationen auf eine Weise schreiben, die synchron aussieht, wodurch Ihr Code leichter zu lesen und zu warten ist.
Die Verwendung von Async/Awed bietet mehrere Vorteile gegenüber herkömmlichen Rückrufmethoden in der asynchronen Programmierung:
Bei der effektiven Fehlerbehandlung mit Async/Auseait werden Try/Catch -Blöcke innerhalb von asynchronen Funktionen verwendet. So können Sie es tun:
Verwenden Sie Try/Catch -Blöcke : Wickeln Sie Ihre erwarteten Ausdrücke in einen Try -Block und behandeln Sie Fehler im Catch -Block:
<code class="javascript">async function fetchData() { try { const response = await fetch('https://api.example.com/data'); if (!response.ok) { throw new Error('Network response was not ok'); } const data = await response.json(); return data; } catch (error) { console.error('There was a problem with the fetch operation:', error); // You can also rethrow the error or handle it further throw error; } }</code>
Fehlerausbreitung : Fehler in asynchronen Funktionen können im Anrufstapel verbreitet werden, sodass Sie sie bei Bedarf auf einem höheren Niveau fangen können:
<code class="javascript">async function useData() { try { const data = await fetchData(); console.log(data); } catch (error) { console.error('Error in useData:', error); } }</code>
Multiple Warteds : Wenn Sie mehrere Ausdrücke erwarten, stellen Sie sicher, dass sie alle im Try -Block sind, um alle potenziellen Fehler zu fangen:
<code class="javascript">async function processData() { try { const data1 = await fetchData1(); const data2 = await fetchData2(data1); // Process both data1 and data2 } catch (error) { console.error('Error in processData:', error); } }</code>
Achten Sie bei der Implementierung von Async/Warte -Funktionen auf diese gemeinsamen Fallstricke:
await
Sie vergessen zu verwenden : Wenn Sie vergessen, mit einem Versprechen in einer asynchronen Funktion auf das Versprechen zu await
, wartet die Funktion nicht, bis das Versprechen auflöst. Dies kann zu unerwartetem Verhalten führen:
<code class="javascript">async function fetchData() { const response = fetch('https://api.example.com/data'); // Missing await const data = response.json(); // This will not work as expected return data; }</code>
async
bei nicht asynchronisierten Funktionen : Verwenden Sie das async
Schlüsselwort nicht unnötig für Funktionen, die keine erwarteten Ausdrücke enthalten, da es aufgrund der Erstellung unnötiger Versprechen zu einer Leistungsaufwand führen kann.async
verwechseln mit await
: Denken Sie daran, dass async
eine Funktion als asynchron markiert, aber es ist await
, dass die Ausführung tatsächlich eine Pause einlässt, bis ein Versprechen einlöst. Missverständnis dies kann zu einem falschen Code führen.Indem Sie sich dieser Fallstricks bewusst sind und bewährte Praktiken folgen, können Sie Async/Assuite effektiv verwenden, um sauberen und effizienten asynchronen Code zu schreiben.
Das obige ist der detaillierte Inhalt vonWie verwende ich Async/warte Funktionen, um asynchronen Code zu schreiben, der synchron aussieht und anfühlt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!