1
resposta

Como escrever a função usando then

Eu estou fazendo as aulas do curso, mas em vez de utilizar async/await eu estou utilizando o método de promessa then e catch, pois estou estudando isso atualmente. Porém eu travei na função processaTexto onde a professora usa async/await e não sei como rescrever ela com o método then...

Se puder me ajudar agradeço muito!!

figura print do vscode mostrando o código processaTexto

1 resposta

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 ✓.