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.