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.