DEV Community


Posted on • Originally published at on


What are JS Generators?

What are JS Generators?

Generators are a feature in Javascript which are basically functions that are kind of like iterators.


You can create generators like this:

function* myGenerator() {}
Enter fullscreen mode Exit fullscreen mode

The * after function is required.


The core mechanic of generators is yielding values.

function* myGenerator() {
    yield 1;
    yield "foo";
    yield "bar";
    yield { thing: true };
Enter fullscreen mode Exit fullscreen mode

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 =; // 1
const foo =; // "foo"
const bar =; // "bar"
const thingTrue =; // { thing: true }
Enter fullscreen mode Exit fullscreen mode

MDN Docs

You can look more into generators on the MDN docs.

Top comments (2)

monfernape profile image
Usman Khalil

What are common use cases for generators?

shadowtime2000 profile image

I think mainly they are for creating more readable iterators.