Vi em outro tópico uma resposta referente ao uso do then no NegociacaoDao.
ConnectionFactory
.getConnection()
.then(connection => new NegociacaoDao(connection))
.then(dao => dao.listaTodos())
.then(negociacoes => negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao)))
.catch(erro => this._mensagem.texto = erro);
Mas lá foi abordado que o then pode retornar qualquer coisa e não só uma promise, porém quando perguntado se poderia ser usado em qualquer método, foi respondido que poderia ser usado mas o método deveria retornar uma promise, não entendi bem, pode retornar qualquer coisa ou não, gostaria por favor de uma explicação mais clara do que porque o then funcionou no NegociacaoDao dando acesso a var dao no código sendo que o constructor de NegociacaoDao não retornava uma promise.
o tópico em questão é esse: https://cursos.alura.com.br/forum/topico-then-sem-o-uso-de-promise-42373
Desde já agradeço.