Solucionado (ver solução)
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.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software