Junior — Middle
Kas saaksite rääkida olukorrast, kus kasutasite oma töös generaatorit?
sobes.tech AI
Vastus AI-lt
Node.js-s kasutasin generaatorid asünkroonse koodi haldamiseks enne async/await-i ilmumist. Generaatorid võimaldavad peatada funktsiooni täitmise ja seda hiljem jätkata, mis on kasulik järjestikuste asünkroonsete operatsioonide teostamisel.
Näiteks saab generaatoriga kirjutada koodi, mis loeb faili, seejärel töötleb andmeid, vältides "callbacki põrgu":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Faili sisu:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Kuigi nüüd kasutatakse sagedamini async/await-i, aitab generaatorite mõistmine paremini aru saada asünkroonsete mehhanismide toimimisest.