Sobes.tech
Junior — Middle

Puteți să ne povestiți despre o situație în care ați folosit un generator în munca dvs.?

sobes.tech AI

Răspuns de la AI

În Node.js, am folosit generatori pentru gestionarea codului asincron înainte de apariția async/await. Generatorii permit suspendarea execuției unei funcții și reluarea acesteia mai târziu, ceea ce este util pentru executarea secvențială a operațiilor asincrone.

De exemplu, cu un generator, se poate scrie cod care citește un fișier, apoi procesează datele, evitând " iadul callback-urilor":

const fs = require('fs');

function* readFileGenerator() {
  const data = yield fs.promises.readFile('file.txt', 'utf8');
  console.log('Conținutul fișierului:', data);
}

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

Deși acum se folosește mai frecvent async/await, înțelegerea generatorilor ajută la o mai bună înțelegere a mecanismelor asincroniei.