Junior — Middle
Ar galite papasakoti apie atvejį, kai savo darbe naudojote generatorių?
sobes.tech AI
Atsakymas iš AI
Node.js, aš naudoju generatorius asinchroninio kodo valdymui prieš atsirandant async/await. Generatoriai leidžia sustabdyti funkcijos vykdymą ir vėl jį tęsti vėliau, kas yra naudinga eilės tvarka vykdant asinchronines operacijas.
Pavyzdžiui, su generatoriumi galima parašyti kodą, kuris skaito failą, tada apdoroja duomenis, išvengiant "callback pragaro":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Failo turinys:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Nors dabar dažniau naudojamas async/await, generatorių supratimas padeda geriau suvokti asinchronijos mechanizmus.