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.