No NegociacaoService.js, método adiciona ele retorna uma Promise. Como a Promise não é instanciada, a Promise que é retornada para o NegociacaoController é a de Connection? (aula 04 video 05)
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!
No NegociacaoService.js, método adiciona ele retorna uma Promise. Como a Promise não é instanciada, a Promise que é retornada para o NegociacaoController é a de Connection? (aula 04 video 05)
Boa tarde!
O método adiciona() de NegociacaoController não retorna valor algum. Talvez, para eu entender melhor a sua pergunta, seja interessante você postar o código dessa parte para que eu possa pontuá-lo.
É desse código que você esta se referindo?
adiciona(event) {
event.preventDefault();
let negociacao = this._criaNegociacao();
new NegociacaoService()
.cadastra(negociacao)
.then(mensagem => {
this._listaNegociacoes.adiciona(negociacao);
this._mensagem.texto = mensagem;
this._limpaFormulario();
}).catch(erro => this._mensagem.texto = erro);
}
Ah, você esta se referindo a NegociacaoService, não NegociacaoController, desculpe. Todavia, não há o método adiciona() em NegociacaoService, é cadastra(). É a este que você esta se referindo?
Então, vamos lá:
class NegociacaoService {
constructor() {
this._http = new HttpService();
}
// código anterior omitido
cadastra(negociacao) {
return ConnectionFactory
.getConnection()
.then(conexao => new NegociacaoDao(conexao))
.then(dao => dao.adiciona(negociacao))
.then(() => 'Negociação cadastrada com sucesso')
.catch(erro => {
throw new Error("Não foi possível adicionar a negociação")
});
}
}
O cadastra() retorna uma promise, aquela que é retornada por ConnectionFactory.getConnection(). É isso mesmo que você colocou meu aluno! Quem chamar service.cadastra() esta recebendo uma promise, por isso pode fazer .then().
Sim era o método cadastrada. Acabei trocando o nome do método pq copiei com mesmo nome do controller XD. Obrigado pela rápida resposta.