Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

then() sem o uso de Promise

Conceitualmente, por que podemos usar

new NegociacaoDao(conexao).then(dao => dao.adiciona(new Negociacao(new Date(), 1, 200.13)))

se NegociacaoDao não retorna uma Promise? Coloquei um log em dao e ele retorna um objeto NegociacaoDao, como esperado. Eu achei que só podíamos usar then() em Promises; pode explicar esse conceito?

Obrigado.

5 respostas

Nas versões mais antigas do JavaScript, não tinha suporte a Promisses de forma nativa. Por isso voce tinha que instanciar uma promisse .

Hoje em dia, acho que qualquer coisa pode retorna uma promisse, faz parte do JavaScript.

Alguem pode te dar uma resposta melhor sobre esse seu caso especifico.

solução!

Bom dia.

Promise pode ter código assíncrono e sincrono e o then pode retornar qualquer coisa, não apenas promise. O retorno é acessivel pelo then. Isso permite um estética padrão no seu código.


ConnectionFactory
    .getConnection()
    .then(conexao => new NegociacaoDao(conexao))
    .then(dao => dao.adiciona(new Negociacao(new Date(), 1, 200.13)))
    .then(() => console.log('adicionado com sucesso'))
    .catch(()

Oi Rodrigo, marquei sem querer como solucionado (no smartphone). Se. Dúvida ainda continua me avise.

Oi Flavio, vou marcar como solucionada sim, só mais uma questão relativa a mesma dúvida: eu posso usar then() com qualquer método/função que retorne um valor, é isso?

Obrigado.

Pode, mas o método deve devolver um promise, se não o then não existirá. Já o retorno do then pode ser uma promise ou não.