| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator/throw | [Back] [Original] |
Get to know MDN better
Dieser Inhalt wurde automatisch aus dem Englischen bersetzt, und kann Fehler enthalten. Erfahre mehr ber dieses Experiment.
Diese Funktion ist gut etabliert und funktioniert auf vielen Gerten und in vielen Browserversionen. Sie ist seit Januar 2020 browserbergreifend verfgbar.
Die throw() Methode von AsyncGenerator Instanzen wirkt so, als ob ein throw-Statement an der aktuellen angehaltenen Position im Krper des Generators eingefgt worden wre, was den Generator ber eine Fehlerbedingung informiert und ihm ermglicht, den Fehler zu behandeln, oder Aufrumarbeiten durchzufhren und sich selbst zu schlieen.
asyncGeneratorInstance.throw(exception)
exceptionDie Ausnahme, die geworfen werden soll. Zu Debugging-Zwecken ist es ntzlich, sie als instanceof Error zu gestalten.
Falls der geworfene Fehler nicht abgefangen wird, wird ein Promise zurckgegeben, das mit der bergebenen Ausnahme abgelehnt wird.
Wird die Ausnahme von einem try...catch abgefangen und der Generator fhrt die Erzeugung weiterer Werte fort, wird ein Promise zurckgegeben, das mit einem Object aufgelst wird, das zwei Eigenschaften hat:
doneEin boolescher Wert:
true, wenn der Kontrollfluss der Generatorfunktion das Ende erreicht hat.false, wenn die Generatorfunktion in der Lage ist, weitere Werte zu erzeugen.valueDer Wert, der vom nchsten yield-Ausdruck erzeugt wird.
Das folgende Beispiel zeigt einen Generator und einen Fehler, der mit der throw-Methode geworfen wird. Ein Fehler kann wie gewohnt von einem try...catch-Block abgefangen werden.
// An async task. Pretend it's doing something more useful
// in practice.
function sleep(time) {
return new Promise((resolve, reject) => {
setTimeout(resolve, time);
});
}
async function* createAsyncGenerator() {
while (true) {
try {
await sleep(500);
yield 42;
} catch (e) {
console.error(e);
}
}
}
const asyncGen = createAsyncGenerator();
asyncGen.next(1).then((res) => console.log(res)); // { value: 42, done: false }
asyncGen
.throw(new Error("Something went wrong")) // Error: Something went wrong
.then((res) => console.log(res)); // { value: 42, done: false }
| Spezifikation |
|---|
| ECMAScript 2027 LanguageSpecification # sec-asyncgenerator-prototype-throw |
async function*AsyncGeneratorAsyncIteratorObject/FunctionDer Bauplan fr ein besseres Internet.
Teile dieses Inhalts sind 19982026 von einzelnen mozilla.org-Mitwirkenden. Inhalte sind verfgbar unter einer Creative-Commons-Lizenz.
| Web Proxy Viewer | New URL | Original Page |