Q. What is generator function in JavaScript?
A generator function is a powerful feature in JavaScript that allows functions to
pause and resume execution, making them useful for lazy evaluation, iterating
over sequences, or asynchronous programming when used with async/await.
Example:
function* numberGenerator() {
yield 1;
yield 2;
yield 3;
}
const gen = numberGenerator();
console.log(gen.next()); // { value: 1, done: false }
console.log(gen.next()); // { value: 2, done: false }
console.log(gen.next()); // { value: 3, done: false }
console.log(gen.next()); // { value: undefined, done: true }
Realtime Example:
Infinite ticket generator
function* infiniteCounter() {
let i = 1;
while (true) {
yield `Ticket-${i++}`;
}
}
const counter = infiniteCounter();
console.log(counter.next().value); // Ticket -1
console.log(counter.next().value); // Ticket -2