TypeError: already executing generator
The JavaScript exception "TypeError: already executing generator" occurs when a next()
) while executing the generator function's body itself.
Message
TypeError: Generator is already running (V8-based) TypeError: already executing generator (Firefox) TypeError: Generator is executing (Safari)
Error type
throw()
, are meant to continue the execution of a generator function when it's paused after a yield
expression or before the first statement. If a call to one of these methods is made while executing the generator function, the error is thrown. If you want to return or throw within the generator function, use the throw
statement, respectively.Examples
js
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();
js
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 }