Sobes.tech
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.