Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
TypeError: already executing generator
Die JavaScript-Ausnahme "TypeError: already executing generator" tritt auf, wenn eingenerator mithilfe einer seiner Methoden (wienext()) fortgesetzt wird, während der Rumpf der Generatorfunktion selbst ausgeführt wird.
In diesem Artikel
Nachricht
TypeError: Generator is already running (V8-based)TypeError: already executing generator (Firefox)TypeError: Generator is executing (Safari)
Fehlertyp
TypeErrorWas ist schiefgelaufen?
Die Methoden des Generators,next(),return(), undthrow(), sollen die Ausführung einer Generatorfunktion fortsetzen, wenn sie nach einemyield-Ausdruck oder vor der ersten Anweisung pausiert ist. Wenn ein Aufruf einer dieser Methoden erfolgt, während die Generatorfunktion ausgeführt wird, wird der Fehler ausgelöst. Wenn Sie innerhalb der Generatorfunktion zurückkehren oder eine Ausnahme werfen möchten, verwenden Sie diereturn-Anweisung bzw. diethrow-Anweisung.
Beispiele
let it;function* getNumbers(times) { if (times <= 0) { it.throw(new Error("times must be greater than 0")); } for (let i = 0; i < times; i++) { yield i; }}it = getNumbers(3);it.next();let it;function* getNumbers(times) { if (times <= 0) { throw new Error("times must be greater than 0"); } for (let i = 0; i < times; i++) { yield i; }}it = getNumbers(3);it.next(); // { value: 0, done: false }