Sobes.tech
Junior — Middle

Môžete nám opísať prípad, keď ste vo svojej práci použili generátor?

sobes.tech AI

Odpoveď od AI

V Node.js som používal generátory na riadenie asynchrónneho kódu pred objavením async/await. Generátory umožňujú pozastaviť vykonávanie funkcie a neskôr ju pokračovať, čo je užitočné pre sekvenčné vykonávanie asynchrónnych operácií.

Napríklad, pomocou generátora môžete napísať kód, ktorý číta súbor, potom spracováva údaje, vyhýbajúc sa "pekelu callbackov":

const fs = require('fs');

function* readFileGenerator() {
  const data = yield fs.promises.readFile('file.txt', 'utf8');
  console.log('Obsah súboru:', data);
}

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

Hoci sa teraz častejšie používa async/await, pochopenie generátorov pomáha lepšie pochopiť mechanizmy asynchrónnosti.