Sobes.tech
Назад к вопросам
Junior — Middle
90

Могли бы вы рассказать о случае, когда вы применяли генератор в своей работе?

Ответ от нейросети

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, понимание генераторов помогает лучше разбираться в механизмах асинхронности.