Junior — Middle
Můžete nám popsat případ, kdy jste ve své práci použili generátor?
sobes.tech AI
Odpověď od AI
V Node.js jsem používal generátory k řízení asynchronního kódu před příchodem async/await. Generátory umožňují pozastavit provádění funkce a později ji znovu spustit, což je užitečné pro sekvenční provádění asynchronních operací.
Například pomocí generátoru lze napsat kód, který čte soubor, poté zpracovává data, aniž by se dostal do "pekel callbacků":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Obsah souboru:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Ačkoliv se nyní častěji používá async/await, pochopení generátorů pomáhá lépe porozumět mechanismům asynchronnosti.