![Page 1: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/1.jpg)
ES2015 Generator Concepts
Valeri KarpovPlatform Tech Lead, Booster Fuels
thecodebarbarian.comgithub.com/vkarpov15
@code_barbarian
![Page 2: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/2.jpg)
What This Talk is About● What is a generator?● What can you do with it?● How does co work?
![Page 3: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/3.jpg)
Terminology● Generator function
● Generator object (or just generator)
![Page 4: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/4.jpg)
The Yield Keyword● yield allows re-entry
![Page 5: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/5.jpg)
The Key Idea of Generators● Yield pauses generator function execution● Calling next() resumes execution● Can call next() asynchronously
![Page 6: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/6.jpg)
Why Is This Useful?
![Page 7: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/7.jpg)
Separate Logic From Scheduling
![Page 8: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/8.jpg)
Yielding a Promise
![Page 9: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/9.jpg)
What’s Next?● Check out The 80/20 Guide to ES2015
Generators● Rigorous guide to generators as spec-ed
with minimal outside dependencies○ No babel, webpack, angular, react, gulp, etc. etc.
● More detail on how co works● Plus koa, the web framework based on co● Plus regenerator, Facebook’s transpiler
![Page 10: ES2015 Generator Concepts - NYC Node.js Meetup 20150316](https://reader037.vdocuments.us/reader037/viewer/2022100110/58eb9c7e1a28abeb428b470d/html5/thumbnails/10.jpg)
Thanks for Listening!Comments, questions, haikus?
Read more at:thecodebarbarian.comgithub.com/vkarpov15
@code_barbarian