2 ms·
This is just custom iterator/generator. Saw many like this before Babel. The point is that ES2015 defines clear interface for iterating over iterables. With he
by symbiosis 10y ago
This is just custom iterator/generator. Saw many like this before Babel.
The point is that ES2015 defines clear interface for iterating over iterables. With help of Symbol and *.
If you would use this code in production, probably you would document it: ... returns iterator function.
next = fib()
next() // 0
next() // 1
next() // 1 ...
But if you would use Symbol.iterator
then you can do
for (f of fib())
console.log(f)
or use gathering, spreading etc..
- gravypod 10y agoWhile I do agree generators offer some amazing features, I think they also offer some complexity that we are currently not ready to handle. from a given for loop: for (x in function()) Please tell me when this for loop will end. You cannot. If you instead did... next = fib() while (true) { number = next(); } You are instantly presented for every case in which this loop will terminate. Now don't get me wrong, I DO fully agree that a generator is the correct method for doing this, I'm just pointing out another construct to allow you to do this.