Junior — Middle
Vai jūs varētu pastāstīt par gadījumu, kad darba laikā izmantojāt ģeneratoru?
sobes.tech AI
Atbilde no AI
Node.js es izmantoju generatorus, lai pārvaldītu asenhrono kodu pirms parādījās async/await. Generatori ļauj pārtraukt funkcijas izpildi un to atsākt vēlāk, kas ir noderīgi secīgi izpildot asenhronas operācijas.
Piemēram, ar generatoru var uzrakstīt kodu, kas lasa failu, tad apstrādā datus, izvairoties no "callback ellē":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Faila saturs:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Lai arī tagad biežāk izmanto async/await, generatoru izpratne palīdz labāk saprast asenhronijas mehānismus.