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