DEV Community

shadowtime2000
shadowtime2000

Posted on • Originally published at h.shadowtime2000.com on

6 3

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() {}
Enter fullscreen mode Exit fullscreen mode

The * after function is required.

Yielding

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

MDN Docs

You can look more into generators on the MDN docs.

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read more →

Top comments (2)

Collapse
 
monfernape profile image
Usman Khalil

What are common use cases for generators?

Collapse
 
shadowtime2000 profile image
shadowtime2000

I think mainly they are for creating more readable iterators.