Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Uncaught TypeError: NegociacaoService.apaga is not a constructor

Porque recebo esse erro? Não estou usando 'apaga' como um construtor, apesar de usar o 'new', é o que o Flávio faz em vídeo, e ele não recebe esse erro. NegociacaoController.js:

// código omitido

apaga() {

        new NegociacaoService()
            .apaga()
            .then(mensagem => {
                this._mensagem.texto = mensagem;
                this._listaNegociacoes.esvazia();
            })
            .catch(erro => this._mensagem.texto = erro);       
    }

// código omitido

NegociacaoService.js:

  // código anterior omitido
  apaga() {

        ConnectionFactory
            .getConnection()
            .then(connection => new NegociacaoDao(connection))
            .then(dao => dao.apagaTodos())
            .then(() => 'Negociações apagadas com sucesso.')
            .catch(erro => {
                console.log(erro);
                throw new Error('Não foi possível apagar as negociações.');
            });
    }
}
3 respostas

Uncaught TypeError: Cannot read property 'then' of undefined também aparece.

solução!

Oi camila,

Você esqueceu de retornar uma promise do método apaga no NegociacaoService. Ai dá esse erro, porque pra usar o .then tem que ser uma promise.

O correto seria assim:

 apaga() {

       return ConnectionFactory
            .getConnection()
            .then(connection => new NegociacaoDao(connection))
            .then(dao => dao.apagaTodos())
            .then(() => 'Negociações apagadas com sucesso.')
            .catch(erro => {
                console.log(erro);
                throw new Error('Não foi possível apagar as negociações.');
            });
    }

Espero ter ajudado :)

Obrigada, Matheus!