Eu segui exatamente os exercícios e ja tentei de tudo pra descobrir onde eu errei, alguem consegue me ajudar? Mesmo após o Promise.all, minhas negociacões ainda vem fora da ordem.
NegociaçãoController:
importarNegociacoes() {
let service = new NegociacoesService();
Promise.all(
[
service.obterNegociacoesDaSemana(),
service.obterNegociacoesDaSemanaAnterior(),
service.obterNegociacoesDaSemanaRetrasada()
]).then(negociacoes => {
negociacoes
.reduce((arrayAchatado, array) => arrayAchatado.concat(array), [])
.forEach(negociacoes => this._listaNegociacoes.adiciona(negociacoes));
this._mensagem.text = 'Negociações Importadas com sucesso!';
}).catch(erro => this._mensagem.texto = erro);
}
HttpService :
get(url) {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.onreadystatechange = () => {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
console.log('colhendo negociacoes');
return resolve(JSON.parse(xhr.responseText));
} else {
console.log(xhr.responseText);
return reject(`Não foi possível importar negociacoes da ${url}`);
}
}
}
xhr.send();
});
}
NegociacoesService:
obterNegociacoesDaSemana() {
return new Promise((resolve, reject) => {
this.http.get('/negociacoes/semana').then((result) => {
resolve(result.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
}).catch((err) => {
reject(this._mensagem.texto = err);
});
})
}
obterNegociacoesDaSemanaAnterior() {
return new Promise((resolve, reject) => {
this.http.get('/negociacoes/anterior').then((result) => {
resolve(result.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
}).catch((err) => {
reject(this._mensagem.texto = err);
});
})
}
obterNegociacoesDaSemanaRetrasada() {
return new Promise((resolve, reject) => {
this.http.get('/negociacoes/retrasada').then((result) => {
resolve(result.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
}).catch((err) => {
reject(this._mensagem.texto = err);
});
})
}