Sobes.tech
Junior — Middle

¿Podría contarme sobre una ocasión en la que utilizó un generador en su trabajo?

sobes.tech AI

Respuesta de la IA

En Node.js, utilicé generadores para gestionar el código asíncrono antes de la aparición de async/await. Los generadores permiten pausar la ejecución de una función y reanudarla más tarde, lo cual es útil para realizar operaciones asíncronas de forma secuencial.

Por ejemplo, con un generador se puede escribir código que lee un archivo, luego procesa los datos, sin caer en el "infierno de callbacks":

const fs = require('fs');

function* readFileGenerator() {
  const data = yield fs.promises.readFile('file.txt', 'utf8');
  console.log('Contenido del archivo:', data);
}

const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));

Aunque ahora se usa más comúnmente async/await, entender los generadores ayuda a comprender mejor los mecanismos de asincronía.