Baseline Widely available
Die throw()
Methode von AsyncGenerator
Instanzen wirkt so, als ob ein throw
-Statement an der aktuellen angehaltenen Position im Körper des Generators eingefügt worden wäre, was den Generator über eine Fehlerbedingung informiert und ihm ermöglicht, den Fehler zu behandeln, oder Aufräumarbeiten durchzuführen und sich selbst zu schlieÃen.
asyncGeneratorInstance.throw(exception)
Parameter
exception
Die Ausnahme, die geworfen werden soll. Zu Debugging-Zwecken ist es nützlich, sie als instanceof
Error
zu gestalten.
Falls der geworfene Fehler nicht abgefangen wird, wird ein Promise
zurückgegeben, das mit der übergebenen Ausnahme abgelehnt wird.
Wird die Ausnahme von einem try...catch
abgefangen und der Generator führt die Erzeugung weiterer Werte fort, wird ein Promise
zurückgegeben, das mit einem Object
aufgelöst wird, das zwei Eigenschaften hat:
done
Ein boolescher Wert:
true
, wenn der Kontrollfluss der Generatorfunktion das Ende erreicht hat.false
, wenn die Generatorfunktion in der Lage ist, weitere Werte zu erzeugen.value
Der Wert, der vom nächsten 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 }
Spezifikationen Browser-Kompatibilität Siehe auch MDN-Feedback-Box War diese Ãbersetzung hilfreich?
Diese Seite wurde automatisch aus dem Englischen übersetzt.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4