Skip to content

Instantly share code, notes, and snippets.

@ukoloff
Last active April 7, 2019 17:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ukoloff/d27e6d99b437ade49cadace58dbe7ea4 to your computer and use it in GitHub Desktop.
Save ukoloff/d27e6d99b437ade49cadace58dbe7ea4 to your computer and use it in GitHub Desktop.
Hand made JS generators
function range(from, to) {
return { next: nextPromise, [Symbol.asyncIterator]: iterator }
function next() {
return from <= to
? { done: false, value: from++ }
: { done: true }
}
function iterator() {
return this
}
function nextPromise() {
return new Promise(fun)
}
function fun(resolve, reject) {
setTimeout(ready, 100)
function ready() {
resolve(next())
}
}
}
function range(from, to) {
return { next: next, [Symbol.iterator]: iterator }
function next() {
return from <= to
? { done: false, value: from++ }
: { done: true }
}
function iterator() {
return this
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment