Sobes.tech
Junior — Middle

Potresti raccontare un caso in cui hai utilizzato un generatore nel tuo lavoro?

sobes.tech AI

Risposta dell'AI

In Node.js, ho utilizzato generatori per gestire il codice asincrono prima dell'introduzione di async/await. I generatori permettono di sospendere l'esecuzione di una funzione e di riprenderla più tardi, il che è utile per eseguire operazioni asincrone in modo sequenziale.

Ad esempio, con un generatore si può scrivere codice che legge un file, poi elabora i dati, senza cadere nell"inferno dei callback":

const fs = require('fs');

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

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

Anche se ora si usa più comunemente async/await, capire i generatori aiuta a comprendere meglio i meccanismi dell'asynchronousità.