Olá Giselle! Tudo bem com você?
Peço desculpa pela demora para respondê-la.
Vi em seu perfil que você já concluiu o curso, portanto estarei passando para você o que seria o estado final do código da Aula 04 do curso, alterado para o método Promess then. Segue o código abaixo:
function processaTexto(argumentos) {
const caminho = argumentos[2];
try {
fs.lstatSync(caminho);
} catch (erro) {
if (erro.code === "ENOENT") {
console.log('arquivo ou diretório não existe');
return;
}
}
if (fs.lstatSync(caminho).isFile()) {
pegaArquivo(argumentos[2])
.then((resultado) => {
imprimeLista(resultado);
})
.catch((erro) => {
console.error(erro);
});
} else if (fs.lstatSync(caminho).isDirectory()) {
fs.promises.readdir(caminho)
.then((arquivos) => {
arquivos.forEach((nomeDoArquivo) => {
pegaArquivo(`${caminho}/${nomeDoArquivo}`)
.then((lista) => {
imprimeLista(lista, nomeDoArquivo);
})
.catch((erro) => {
console.error(erro);
});
});
})
.catch((erro) => {
console.error(erro);
});
}
}
Não houve uma grande mudança na estrutura do código como você pode ver. De forma resumida, podemos dizer que o grande diferencial apresentado é adição do tratamento de erro com o catch
, onde será lançado um erro caso a promessa não for comprida.
Espero que o código que compartilhei possa lhe ajudar nos seus estudos. Caso tenha alguma dúvida ou problema, com relação ao tópico, estarei à disposição para ajudá-la.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.