Code: Select all
async function myFunction {
// ...
await someObject.methodThatReturnsPromise();
// ...
await aFunctionThatReturnsPromise();
// ...
}
try {
// ...
myFunction();
// ...
} catch (e) {
// error handling code
}
Wie das funktioniert, können Sie im folgenden Beispiel sehen. myFunction() ist eine asynchrone Funktion, die innerhalb eines try...catch-Blocks aufgerufen wird. Wenn
myFunction() ausgeführt wird, wird die Codeausführung bei
methodThatReturnsPromise() angehalten, bis das Versprechen aufgelöst wird. An diesem Punkt fährt der Code mit aFunctionThatReturnsPromise() fort und wartet erneut.
Der Code im Catch-Block wird ausgeführt, wenn ein Fehler in der
asynchronen Funktion ausgelöst wird. Dies geschieht, wenn das von
einer der Methoden zurückgegebene Versprechen abgelehnt wird.
Mein Verständnis ist, dass das alles falsch ist? Um Fehler abzufangen, fügen Sie entweder den try...catch-Block in myFunction() ein oder fangen Sie die Fehler beim Aufruf von myFunction() im globalen Kontext mit< ab br />
Code: Select all
myFunction().catch((error) => console.log(error));