Olá, estou com um erro que não consigo resolver. Meu código estava funcionando perfeitamente, mas quando fui fazer as alterações das duas últimas lições, algo de errado aconteceu e a mensagem de alto nível mostrada acima do formulário ficou como "TypeError: Cannot read property 'getDate' of undefined".
Código do meu NegociacaoController:
importaNegociacoes() {
let negociacaoService = new NegociacaoService();
negociacaoService.obtemNegociacoes()
.then(negociacoes => {
negociacoes.forEach(negociacao => this._listaNegociacoes.adiciona(negociacao));
this._mensagem.texto = 'Negociações importadas com sucesso.';
})
.catch(erro => {
console.log(erro);
this._mensagem.texto = erro}
);
}
Código do meu NegociacaoService:
class NegociacaoService {
constructor() {
this._httpService = new HttpService();
}
obtemNegociacoes() {
return Promise.all([
this.obtemNegociacoesDaSemana(),
this.obtemNegociacoesDaSemanaAnterior(),
this.obtemNegociacoesDaSemanaRetrasada()
]).then(negociacoes => {
//aqui precisamos fazer um flatting do array de arrays de negociacoes
negociacoes
.reduce((arrayAchatado, arrayIncluso) => arrayAchatado.concat(arrayIncluso), [])
return negociacoes;
}).catch(erro => {
throw new Error(erro);
});
}
obtemNegociacoesDaSemana() {
return this._httpService.get('negociacoes/semana')
.then(negociacoes => {
console.log(negociacoes);
return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
})
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível obter as negociações da semana.');
})
}
obtemNegociacoesDaSemanaAnterior () {
return this._httpService.get('negociacoes/anterior')
.then(negociacoes => {
console.log(negociacoes);
return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
})
.catch(erro => {
console.log(erro);
throw new Error('Não foi possível obter as negociações da semana anterior.');
})
}
obtemNegociacoesDaSemanaRetrasada() {
return this._httpService.get('negociacoes/retrasada')
.then(negociacoes => {
console.log(negociacoes);
return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor));
})
.catch(erro => {
console.log(erro);
reject('Não foi possível obter as negociações da semana retrasada.');
})
}
}