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

Não faltou um passo para transformar a lista de objetos em lista de negociações no método obterNegociacoes?

    obterNegociacoes(url) {

        return Promise.all([ this._httpService.get('negociacoes/semana'),
                             this._httpService.get('negociacoes/anterior'),
                             this._httpService.get('negociacoes/retrasada') ])
            .then(periodos => {
                console.log(periodos);
                let negociacoes = periodos.reduce((dados, periodo) => dados.concat(periodo), [])
                **.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))**;
                return negociacoes;
            })
            .catch(erro => {
                console.log(erro);
                throw new Error('Nao foi possivel importar as negociações da ' + url + '.');
            });
    }
1 resposta
solução!

Olá! Não faltou porque os outros métodos já devolvem a lista de negociações do tipo Negociacao. Se eles não fizerem isso, com certeza precisaria fazer o map sim.

Veja o gabarito:

class NegociacaoService {

    // código anterior omitido 

    obterNegociacoes() {

        return Promise.all([
            this.obterNegociacoesDaSemana(), // já retorna uma lista do tipo Negociacao
            this.obterNegociacoesDaSemanaAnterior(),  // já retorna uma lista do tipo Negociacao
            this.obterNegociacoesDaSemanaRetrasada()  // já retorna uma lista do tipo Negociacao
        ]).then(periodos => {

            let negociacoes = periodos
                .reduce((dados, periodo) => dados.concat(periodo), []);

            return negociacoes;

        }).catch(erro => {
            throw new Error(erro);
        });

    } 
}

Agora, o código que você compartilhou esta diferente do que eu ensinei na aula. Sendo assim, se você não converteu lá no seu método get, precisará fazer o map.

Sucesso e bom estudo!