Eu entendo a necessidade de retirar a complexidade do controller e passar para a classe NegociacaoService. Contudo, criamos 4 métodos adicionais na classe NegociacaoService com código bastante semelhante um ao outro e 3 deles nada mais fazem além de ser uma ponte para a chamada ao DAO.
Não seria mais interessante ter um atributo no Controller como:
this._dao = ConnectionFactory
.getConnection()
.then(connection => new NegociacaoDao(connection));
E nos métodos chamar o dao diretamente com this._dao.then(dao => dao.adiciona(negociacao)), this._dao.then(dao => dao.listaTodos()), this._dao.then(dao => dao.apagaTodos())
.
Outra coisa que me parece desnecessária é a criação do método importa() no NegociaçãoService, visto que já temos o método obterNegociacoes() que pode ser adaptado para englobar a parte que foi retirada do controller, apenas colocando a listaAtual como parâmetro e encadeando o then que estava no controller.
São dúvidas vindas da inexperiência, pois não sei quando vale a pena ser mais verboso para aumentar a clareza e semântica.