DEV Community

Discussion on: Use-Cases For JavaScript Generators

Collapse
 
johncarroll profile image
John Carroll • Edited

You left out combining the generators API with Symbol.iterator to create an object which can be used with the browser's native for/of syntax. developer.mozilla.org/en-US/docs/W... Which, from my perspective, is the most obvious/common use case for generators.

Separately, the open source recurring dates library rSchedule is built entirely upon ES6 generators. They are a necessary abstraction given that many calendar schedules are infinitely recurring.

Pretty much every object in the library is a generator. The generator code for the Rule object can be seen here: gitlab.com/john.carroll.p/rschedul....

When you build out a recurrence object in rSchedule, you are really building a generator out of many generators.

Collapse
 
rfornal profile image
bob.ts

Didn’t leave out the Symbol.iterator ... was looking for “practical” use-cases. Can you show, in code, a use case beyond the Hello World examples?

For the rSchedule ... THAT is what I was looking for. Can’t wait to dig through their code!

Collapse
 
johncarroll profile image
John Carroll • Edited

I'll let rSchedule be my practical example.

Though I'm getting the impression that we might have different conceptions of the word "practical". From my perspective, a for loop is one of the most basic javascript keywords. Used in pretty much every app ever. The practicality of being able to hook into that keyword (and related keywords continue and break) with a custom object seems self evident? Or are you more simply wondering why someone wouldn't just extend Array (or expose the data as an array via a property)?

Thread Thread
 
rfornal profile image
bob.ts

I believe I might need to extend my definition of practical. I was looking for real-world use-cases since some of the examples seem challenging to see applied in production code. I’m trying to showcase code that is more than just an example.