Sobes.tech
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.