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

Dúvida envolvendo método apaga de Negociacao Service

Mesmo seguindo os passos da vídeo aula encontro o seguinte erro no console do navegador:

NegociacaoController.js:67 Uncaught TypeError: Cannot read property 'then' of undefined
    at NegociacaoController.apaga (NegociacaoController.js:67)
    at HTMLButtonElement.onclick ((index):37)

e meu código esta da seguinte maneira no NegociacaoService.js

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');
        });
    }

E assim no NegociacaoController.js

    apaga(){

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

Contudo, tudo funciona se eu colocar return no método apaga do NegociacaoService.js, sendo que no código da vídeo aula funciona sem precisar colocar o return. Houve alguma mudança na forma que o javascript funciona?

3 respostas
solução!

Fala ai Antonio, tudo bem? Acho que faltou adicionar um return na função apaga da NegociacaoService.

Seu código:

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');
        });
    }

Tente adicionar um return:

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

Era isso mesmo, acabei de ver aqui na vídeo aula seguinte. Obrigado.

Magino Antonio, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.