Junior — Middle
Could you tell about a case when you applied a generator in your work?
sobes.tech AI
Answer from AI
In Node.js, I used generators to manage asynchronous code before async/await appeared. Generators allow pausing and resuming function execution, which is convenient for sequentially executing asynchronous operations.
For example, with generators, you can write code that reads a file, then processes data, avoiding "callback hell":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('File content:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Although now async/await is more common, understanding generators helps better grasp asynchronous mechanisms.