Back to questions
Junior — Middle
89
Могли бы вы рассказать о случае, когда вы применяли генератор в своей работе?
Answer from AI
sobes.tech AI
В Node.js я использовал генераторы для управления асинхронным кодом до появления async/await. Генераторы позволяют приостанавливать выполнение функции и возобновлять его позже, что удобно для последовательного выполнения асинхронных операций.
Например, с помощью генератора можно написать код, который читает файл, затем обрабатывает данные, не погружаясь в "callback hell":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Содержимое файла:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Хотя сейчас чаще используют async/await, понимание генераторов помогает лучше разбираться в механизмах асинхронности.