< JavaScript


Generators are part of the ECMAScript 6 language specification. Firefox has supported the ECMAScript 6 compliant syntax for generators since 2013-12-10.[1] Node.js (server-side JavaScript) also has supported ES6 generator syntax[2] since 2013-05-15.[citation needed]


example

function* vehicle(){
  var index = 0;
  while (index < 4)
    yield index++;
}

var firetruck = vehicle();
var car = vehicle();

console.log(car.next().value); // 0
console.log(car.next().value); // 1
console.log(firetruck.next().value); // 0
console.log(car.next().value); // 2
console.log(firetruck.next().value); // 1
console.log(car.next().value); // 3
console.log(car.next().value); // undefined


The function* keyword creates a generator function.[3]

Further reading

(FIXME: Say a few more words about generators. Perhaps use some or all of the following as references:

"Generators in Node.js: Common Misconceptions and Three Good Use Cases". "Coroutines no, generators yes. Why coroutines won’t work on the Web". "What Is This Thing Called Generators?". "callbacks vs generators vs coroutines".)

References

This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.