Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Isolando a complexidade em HttpService

Olah!

Acompanhando esta aula percebo os metodos de obter semana, atrasada e retrasada recebem uma nova promisse, a partir do resultado obtido pela HttpService.

Dentro dessas implementacoes, fiz os metodos das seguinte forma:

    obterNegociacoesSemana() {

        return this._http.get('negociacoes/semana')
            .then(negociacoes => negociacoes
                .map(negociacao => new Negociacao(new Date(negociacao.data), negociacao.quantidade, negociacao.valor)))
            .catch(erro => erro);
    }

    obterNegociacoesSemanaAnterior() {

        return this._http.get('negociacoes/anterior')
            .then(negociacoes => negociacoes
                .map(negociacao => new Negociacao(new Date(negociacao.data), negociacao.quantidade, negociacao.valor)))
            .catch(erro => erro);
    }

    obterNegociacoesSemanaRetrasada() {

        return this._http.get('negociacoes/retrasada')
            .then(negociacoes => negociacoes
                .map(negociacao => new Negociacao(new Date(negociacao.data), negociacao.quantidade, negociacao.valor)))
            .catch(erro => erro);
    }

A pergunta eh, como forma de padrao estah incorreto fazer dessa forma?

PS.: O codigo acima funciona! =)

1 resposta
solução!

Oi Diogo! Funciona, claro!

No módulo 3 avançamos com Promise e você aprende que isso é possível entre outras coisas. Eu curti você já sacado nesse ponto do curso essa possibilidade.

Só tem que acertar o catch. Veja que você não retorna a mensagem de erro de alto nível.

catch(erro => {
     console.log(erro);
      return Promise.reject('Não foi possível obter as negociações da semana retrasada');
}

Um catch pode retornar uma nova rejeição assim. Daí logamos o erro do serviço http e devolvemos um mensagem de alto nível que faça sentido para o usuário.

Sucesso e bom estudo!