Ao invés de user o ForEach dentro do terceiro then, pensei na ideia de criar um método na classe ListaNegociacoes que ao invés de receber uma negociações como parâmetro, recebe um array de negociações e faz a inserção. Desta forma não seria necessário aumentar a complexidade desse trecho do código usando ForEach. Essa "solução" é aceitável ou trás algum efeito colateral ?
ConnectionFactory.getConnection()
.then(connection => new NegociacaoDao(connection))
.then(negociacaoDao => negociacaoDao.listar())
//.then(negociacoes => negociacoes.forEach((negociacao) => this._listaNegociacoes.adiciona(negociacao)));
.then(negociacoes => this._listaNegociacoes.adicionaVarias(negociacoes));