Junior — Middle
Poderia contar um caso em que utilizou um gerador no seu trabalho?
sobes.tech IA
Resposta da IA
No Node.js, utilizei geradores para gerir o código assíncrono antes do aparecimento do async/await. Os geradores permitem pausar a execução de uma função e retomá-la mais tarde, o que é útil para executar operações assíncronas de forma sequencial.
Por exemplo, com um gerador, pode-se escrever código que lê um ficheiro, depois processa os dados, sem cair no "inferno dos callbacks":
const fs = require('fs');
function* readFileGenerator() {
const data = yield fs.promises.readFile('file.txt', 'utf8');
console.log('Conteúdo do ficheiro:', data);
}
const gen = readFileGenerator();
const promise = gen.next().value;
promise.then(data => gen.next(data));
Embora agora seja mais comum usar async/await, compreender os geradores ajuda a entender melhor os mecanismos de assíncronia.