Summary

In this chapter, we took a detailed look at ES6 Generators. Generators are one of the most anticipated features of ES6. The ability to pause and resume execution of a function opens up a lot of possibilities around co-operative programming. The primary strength of generators is that they provide a single-threaded, synchronous-looking code style, while hiding the asynchronous nature away. This makes it easier for us to express in a very natural way what the flow of our program's steps/statements is without simultaneously having to navigate asynchronous syntax and gotchas. We achieve separation of concern using generators due to this.

Generators work hand-in-hand with the iterators and iterables contract. These are welcome addition to ES6 and significantly boosts the data structures the language offers. Iterators provide a simple way to return a (potentially unbounded) sequence of values. The @@iterator symbol is used to define default iterators for objects, making them an iterable.

The most important use case for iterators becomes evident when we want to use it in a construct that consumes iterables, such as the for...of loop. In this chapter we also looked at a new loop construct for...of introduced in ES6. for...of works with a lot of native objects because they have default @@iterator methods defined. We looked at new additions to the ES6 collections like-Maps, Sets, WeakMaps, and Weak Sets. These collections have additional iterator methods-.entries(), .values() and .keys().

The next chapter will take a detailed look at JavaScript Prototypes.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.199.138