Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Refresh

Olá, Eu implementei o codio e eu consigo ver no console que a cada 3 segundos esta sendo adicionado e que minha lista está atualizada no entanto quando eu adiciono no post ele so aparece na minha lista depois que eu der refresh na pagina.

Parece que tudo esta certo mas nao entendo como que a pagina teoricamente está dando refresh pois ela intercepta a cada 3 segundos a suposta adiçao de novas importações e que o banco recebe aquilo que enviei pelo post , mas isso que está no post so aparece na lista se eu dar refresh na pagina ...

Obrigado pela atenção, segue meu codigo :

class NegociacaoController {

    constructor() {

        let $ = document.querySelector.bind(document);

        this._inputData = $('#data');
        this._inputQuantidade = $('#quantidade');
        this._inputValor = $('#valor');

        this._listaNegociacoes = new Bind(
            new ListaNegociacoes(), 
            new NegociacoesView($('#negociacoesView')), 
            'adiciona', 'esvazia' , 'ordena', 'inverteOrdem');

        this._mensagem = new Bind(
            new Mensagem(), new MensagemView($('#mensagemView')),
            'texto');    

        this._ordemAtual = ''

        ConnectionFactory
            .getConnection()
            .then(connection => new NegociacaoDao(connection))
            .then(dao => dao.listaTodos())
            .then(negociacoes => 
                negociacoes.forEach(negociacao => 
                    this._listaNegociacoes.adiciona(negociacao)))
            .catch(erro =>{
                console.log(erro);
                this._mensagem.texto = erro; 
            });
        setInterval(() =>{ 
            this.importaNegociacoes()}
        ,3000);    
    }

    adiciona(event) {

        event.preventDefault();
        ConnectionFactory
        .getConnection()
        .then(conexao => {
            let negociacao = this._criaNegociacao();
            new NegociacaoDao(conexao)
            .adiciona(negociacao)
            .then(()=>{
                this._listaNegociacoes.adiciona(negociacao);
                this._mensagem.texto = 'Negociação adicionada com sucesso'; 
                this._limpaFormulario(); 
            });
        })
        .catch(erro => this._mensagem.texto = erro );

    }

    importaNegociacoes() {


        let service = new NegociacaoService();
        service
            .obterNegociacoes()
            .then(negociacoes =>
                negociacoes.filter(negociacao => 
                    !this._listaNegociacoes.negociacoes.some(negocicaoExistente =>
                        JSON.stringify(negociacao)))
            )
            .then(negociacoes => negociacoes.forEach(negociacao => {
                this._listaNegociacoes.adiciona(negociacao);
                this._mensagem.texto = 'Negociações do período importadas'   
            }))
            .catch(erro => this._mensagem.texto = erro)                            
    }
1 resposta

Não entendi com clareza o problema. Pode tentar explicar novamente, de outra maneira?