Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
2
respostas

Uso de async e wait

Estava tendo um problema com o metodo get('/'), meu código estava assim:

roteador.get('/',  (req, res) => {
    const result =  ModeloFornecedores.listar();
    res.send(
        JSON.stringify(result)
    );
});

quando não usava o async e await, a função listar não retornada nada, depois que identifiquei que o problema era a falta do async ficou tudo certo. Minha dúvida é aseguinte, quando não uso esses dois, o código 'passa direto'? e não espera a resposta do metodo listar? basicamente?

2 respostas
solução!

Sim rodolfo. Isso acontece por que uma funcao assincrona, quando chamada, retorna uma promessa que futuramente ira se concretizar e retornar o valor desejado. Ou seja, se voce nao der o "await" antes da funcao assincrona, ela ira ser lida ainda como uma promessa, podendo ate mesmo retornar um valor null por exemplo.

Assim como o Pablo explicou se tratar de uma função assíncrona que vai lhe retorna uma promessa de "resolução", no momento que você chama essa função ela não tem como lhe trazer um resultado imediato já que a pesquisa no banco de dados levará um tempo, com o uso do "await" você declara que se deve esperar a resolução dessa função.