JavaScript ist single-threaded, dh. es führt Code in einer sequenziellen Weise aus. Das heißt, es stellt einen Code nach dem anderen aus dem Aufrufstapel dar. Asynchrone Funktionen erlauben es Ihnen jedoch, asynchrone Ereignisse zu behandeln. Asynchrone Funktionen ermöglichen es Ihnen, lange laufende Operationen wie Netzwerkanfragen ohne Blocking oder Hängen des Threads durchzuführen.
Hinweis: Async/Await ist nur in modernen Browsern verfügbar. Es ist Teil von ES7, das nur in modernen Browsern und in der aktuellen LTS-Version von Node.js unterstützt wird.
Im Folgenden finden Sie ein Beispiel, wie Sie Async/Await in JavaScript verwenden können:
```javascript
async function meineAsynchroneFunktion(url) {
try {
let response = await fetch(url);
let data = await response.json();
return data;
}
catch (error) {
console.error(error);
}
}
meineAsynchroneFunktion(‘https://api.example.com/data’)
.then(data => console.log(data))
.catch(error => console.error(error));
```
In diesem Beispiel verwenden wir die Fetch-API. `fetch()` gibt ein Promise zurück, das zur Darstellung der Antwort eines Netzwerkantrags verwendet wird. Mit `await` können Sie auf ein Promise warten, bis es erfüllt oder abgelehnt wird.
Die `async`-Funktion wird immer ein Promise zurückgeben. Bei einem Wert kann das Promise mit einem `resolve(value)` zurückgegeben werden, und bei einem Fehler wird das Promise mit `reject(error)` zurückgegeben.
Jedes `await` muss in einer `async`-Funktion liegen, Sie können es direkt in Ihrem Code außerhalb einer `async`-Funktion nicht verwenden.
`Try-catch` wird verwendet, um eventuelle Fehler abzufangen, die während des Prozesses auftreten könnten. Haben Sie also immer die Gewohnheit, Ihren `await`-Code in einem `try-catch`-Block zu halten, da `await` immer eine Ausnahme auslöst, wenn das versprochene Objekt abgelehnt wird.