como diabos ele conseguiu fazer o codigo funcionar com com o reduce e o concat? eu não entendi nada.
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!
como diabos ele conseguiu fazer o codigo funcionar com com o reduce e o concat? eu não entendi nada.
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.