Generator: iterator
Generators return iterable objects
Generators returns an iterable object
a generator returns an object
function* generatorFunction(){
yield 1;
yield 2;
}
const generator = generatorFunction();
const typeOfTheGenerator = '';
assert.equal(typeOfTheGenerator, typeof generator);
a generator object has a key Symbol.iterator
function* generatorFunction(){
yield 1;
yield 2;
}
const generator = generatorFunction();
const key = '???';
assert.equal(key in generator, true);
the Symbol.iterator
is a function
function* generatorFunction(){
yield 1;
yield 2;
}
const generator = generatorFunction();
const theType = typeof generator.Symbol.iterator;
assert.equal(theType, 'function');
can be looped with `for-of', which expects an iterable
function* generatorFunction(){
yield 1;
yield 2;
}
const generator = generatorFunction();
function iterateForOf(){
for (let value of {}) {
// no statements needed
}
}
assert.doesNotThrow(iterateForOf);