20% discount for your first project

Get a Quote

Generator

Generator

Suboor Khan

The Generator object is returned by a generator function and it conforms to both the iterable protocol and the iterator protocol.

The Generator object is returned by a generator function and it conforms to both the iterable protocol and the iterator protocol.

The Generator object is returned by a generator function and it conforms to both the iterable protocol and the iterator protocol.

Constructor

This object cannot be instantiated directly. Instead, a Generator instance can be returned from a generator function:



    
        function* generator() {
            yield 1;
            yield 2;
            yield 3;
          }
          
          const gen = generator(); // "Generator { }"
          
          console.log(gen.next().value); // 1
          console.log(generator().next().value); // 1
          console.log(generator().next().value); // 1
    


Instance methods


Generator.prototype.next()

Returns a value yielded by the yield expression.


Generator.prototype.return()

Returns the given value and finishes the generator.


Generator.prototype.throw()

Throws an error to a generator (also finishes the generator, unless caught from within that generator).


Examples

An infinite iterator

With a generator function, values are not evaluated until they are needed. Therefore a generator allows us to define a potentially infinite data structure.



    
        function* infinite() {
            let index = 0;
        
            while (true) {
                yield index++;
            }
        }
        
        const generator = infinite(); // "Generator { }"
        
        console.log(generator.next().value); // 0
        console.log(generator.next().value); // 1
        console.log(generator.next().value); // 2
        // ...
    
HomeServicesCase StudiesHire Us