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

Duvida sobre reduce e o concat da aula?

como diabos ele conseguiu fazer o codigo funcionar com com o reduce e o concat? eu não entendi nada.

1 resposta
solução!

Fala ai Miguel, tudo bem? Vamos lá:

Promise.all([
        service.obterNegociacoesDaSemana(),
        service.obterNegociacoesDaSemanaAnterior(),
        service.obterNegociacoesDaSemanaRetrasada()]
    ).then(negociacoes => {
        negociacoes
          .reduce((arrayAchatado, array) => arrayAchatado.concat(array), [])
          .forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
        this._mensagem.texto = 'Negociações importadas com sucesso';
    })

Esse trecho de código está chamando três serviços, no caso: obterNegociacoesDaSemana, obterNegociacoesDaSemanaAnterior e obterNegociacoesDaSemanaRetrasada.

Onde vai ser retornado uma Promise para cada função e cada Promise tem um array de Negociacao.

Quando a gente faz o Promise.all será criado um array onde para cada resultado das Promises um novo item será adicionado nesse array, no caso o negociacoes.

Depois a gente percorre o array de negociacoes onde dentro dele vamos ter três outros array (um para cada serviço).

Através do reduce a gente cria um array vazio e para cada array (resposta dos serviços) a gente adiciona todos os itens nesse novo array criado pelo reduce.

Esepero ter ajudado.

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