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

Erro ao clicar em Importar Negociações (aula 06 parte 06 - Lazy Loading)

Boa noite! Tudo bem?

Seguinte, na aula 6 do curso de WebPack (inclusive, que cursozinho mais confuso hein), não consigo fazer funcionar meu projeto, mesmo que segundo o passo a passo do professor, deveria estar funcionando...

Segui todo o passo a passo, e chequei duas vezes se fiz certinho, e aparentemente segui todo o passo a passo sim (aula 06 parte 06 - Lazy Loading). Meu webpack gera o 0.bundle.js certinho, mas parece não conseguir se conectar a API que retorna as negociações. No console, meu retorno é:

ApplicationException: Não foi possível obter as negociações da semana
    at http://localhost:8080/0.bundle.js:29:19
    at async Promise.all (index 0)

Estou tentando debuggar isso aqui, mas até por falta de experiência com o webpack, estou tendo bastante dificuldade.. Se qualquer pessoa conseguir ajudar, agradeço desde já a atenção! :D

3 respostas

Bom, reverti os passos da aula 06.06, e o problema se manteve, o que indica que foi algum erro que cometi em aulas anteriores e não identifiquei... Alguém tem alguma noção do que possa ser?

Meu NegociacaoService:

import { HttpService } from '../../util/HttpService.js';
import { Negociacao } from './Negociacao.js';
import { ApplicationException } from '../../util/ApplicationException.js';

export class NegociacaoService {

    constructor() {

        this._http = new HttpService();
    }

    obtemNegociacoesDaSemana() {

        return this._http
            .get('http://localhost:3000/negociacoes/semana')
            .then(
            dados =>
                dados.map(objeto =>
                    new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))
            ,
            err => {

                throw new ApplicationException('Não foi possível obter as negociações da semana');
            }
            );
    }

    obtemNegociacoesDaSemanaAnterior() {

        return this._http
            .get('http://localhost:3000/negociacoes/anterior')
            .then(
            dados => dados.map(objeto =>
                new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))
            ,
            err => {

                throw new ApplicationException('Não foi possível obter as negociações da semana anterior');
            }
            );
    }

    obtemNegociacoesDaSemanaRetrasada() {

        return this._http
            .get('http://localhost:3000/negociacoes/retrasada')
            .then(
            dados => dados.map(objeto =>
                new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))
            ,
            err => {
                throw new ApplicationException('Não foi possível obter as negociações da semana retrasada');
            }
            );
    }

    async obtemNegociacoesDoPeriodo() {

        try {
            let periodo = await Promise.all([
                this.obtemNegociacoesDaSemana(),
                this.obtemNegociacoesDaSemanaAnterior(),
                this.obtemNegociacoesDaSemanaRetrasada()
            ]);
            return periodo
                .reduce((novoArray, item) => novoArray.concat(item), [])
                .sort((a, b) => b.data.getTime() - a.data.getTime());

        } catch (err) {
            console.log(err);
            throw new ApplicationException('Não foi possível obter as negociações do período')
        };
    }
}

Encontrei o erro, ou talvez tenha encontrado rs. Eu não havia subido o projeto/server, no entanto, eu havia entendido que na aula 03, onde instalamos o webpack-dev-server, não se fazia mais necessário subir o servidor.. Eu que havia entendido errado? O dev-server não assume a responsabilidade de subir a API do server?

solução!

Revi as aulas que mencionei sobre o webpack-dev-server e acabei me respondendo mesmo no post kkkkk

Resumindo, caso alguém consulte isso depois: Meu erro foi não ter startado o servidor do projeto "server", já que temos dois servidores separados, back-end e front-end, e o webpack-dev-server está com a responsabilidade apenas de rodar o front-end. Basicamente minhas requisições estavam tomando timeout.

É isso, fui burro rs.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software