Generators Flashcards
1
Q
What are generators?
A
You can think of generators as processes (pieces of code) that you can pause and resume:
function* genFunc() { // (A) console.log('First'); yield; console.log('Second'); }
Note the new syntax: function*
is a new “keyword” for generator functions (there are also generator methods). yield
is an operator with which a generator can pause itself. Additionally, generators can also receive input and send output via yield.
When you call a generator function genFunc()
, you get a generator object genObj
that you can use to control the process:
const genObj = genFunc();
The process is initially paused in line A. genObj.next()
resumes execution, a yield
inside genFunc()
pauses execution:
genObj.next(); // Output: First genObj.next(); // output: Second
” What are generators? “ (exploringjs.com). Retrieved October 4, 2024.