Skip to content

Instantly share code, notes, and snippets.

@ungarson
Last active June 15, 2019 08:55
Show Gist options
  • Select an option

  • Save ungarson/9eb22bafcc9eb2ff53e61ec415262084 to your computer and use it in GitHub Desktop.

Select an option

Save ungarson/9eb22bafcc9eb2ff53e61ec415262084 to your computer and use it in GitHub Desktop.
Simple javascript generator. It is not iterable through for of.
export default function generator() {
const valuesToReturn = generator.prototype.valuesToReturn;
return {
value: null,
done: null,
next() {
const returnThis = valuesToReturn.pop();
return {
value: returnThis,
done: valuesToReturn.length === 0,
next: this.next
}
}
}
}
// Example of usage
// generator.prototype.valuesToReturn = [
// 'abc',
// 'cdf',
// 'hello'
// ];
// var gen = generator();
// console.log(gen.next().value); // 0
// console.log(gen.next().value); // 1
// console.log(gen.next().value); // 2
// console.log(gen.next().value); // undefined
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment