What are JS Generators?
What are JS Generators?
Generators are a feature in Javascript which are basically functions that are kind of like iterators.
Creating
You can create generators like this:
function* myGenerator() {}
The *
after function
is required.
Yielding
The core mechanic of generators is yield
ing values.
function* myGenerator() {
yield 1;
yield "foo";
yield "bar";
yield { thing: true };
}
Taking Values
You have created your generator. Now, we need to use it. When you have a generator, you can call .next()
on it, and it will run the generator until it reaches a yield
statement. When it reaches it, it will return an object with two parameters, value
, and done
.
const one = myGenerator.next().value; // 1
const foo = myGenerator.next().value; // "foo"
const bar = myGenerator.next().value; // "bar"
const thingTrue = myGenerator.next().value; // { thing: true }
MDN Docs
You can look more into generators on the MDN docs.
a11y ho, web development votary, musician
I've been curious for some time now about generators. They seem incredibly powerful; yet I've never used them IRL. What are some real-world use cases for generators?
Comments (2)