Estou com uma dúvida nesse curso. Na aula 4 - item 6, o código escrito utiliza o retorno implicito como se fosse uma Promise, mas sem declarar promise , como abaixo:
class Service()
...
lista() {
return ConnectionFactory
.getConnection()
.then(connection => new NegociacaoDao(connection))
.then(dao => dao.listaTodos())
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível obter as negociações')
})
}
E depois o mesmo é chamado na classe de Controller assim:
class Controller()
...
_init() {
this._service
.lista()
.then(negociacoes =>
negociacoes.forEach(dado =>
this._listaNegociacoes.adiciona(negociacao)))
.catch(erro => this._mensagem.texto = erro);
}
E inclusive no vídeo da aula, funciona perfeitamente. Porém, na minha aplicação isso não funciona. Só funcionou quando declarei promise nos retornos, os códigos ficaram assim:
class Service()
...
lista() {
return new Promise((resolve, reject) => {
ConnectionFactory
.getConnection()
.then(connection => new NegociacaoDao(connection))
.then(dao => {
resolve(dao.listaTodos())
})
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível obter as negociações');
});
})
}
______________________________________________________________________
class Controller()
...
_init() {
this._service
.lista()
.then(negociacoes => {
negociacoes.forEach(negociacao =>
this._listaNegociacoes.adiciona(negociacao))
})
.catch(erro => {
this_mensagem.texto = erro;
});
}
Sabem me informar porquê não funcionou como explicado na aula??? Ocorreu alguma mudança no ES6 da data da aula até hoje que barrou isso?