Olá a todos, por favor, necessito de ajudo com isto:
Promise está me retornando o seguinte erro:
NegociacaoController.js:33 Uncaught TypeError: undefined is not a promise
Código:
Negociação Controller:
importar() {
let service = new NegociacaoService();
Promise().all(Object.getOwnPropertyNames(Object.getPrototypeOf(service)).filter(method => method != 'constructor'))
.then(negociacao => negociacao.forEach(negociacao => {this._listaNegociacoes.adiciona(negociacao)}))
.catch(texto => this._mensagem.texto = texto);
}
tentei no modo correto (do curso) também, já que eu não consegui testar se o de cima está certo devido o erro me travar:
importar() {
let service = new NegociacaoService();
new Promise().all([service.obterNegociacoesDaSemana(), service.obterNegociacoesDaSemanaRetrasada(), service.obterNegociacoesDaSemanaAnterior()])
.then(negociacao => negociacao.forEach(negociacao => {this._listaNegociacoes.adiciona(negociacao)}))
.catch(texto => this._mensagem.texto = texto);
}
Negociação Service:
obterNegociacoesDaSemana() {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', 'negociacoes/semana');
xhr.onreadystatechange = () => {
if (xhr.readyState === 4) {
if (xhr.status === 200) {
resolve(JSON.parse(xhr.responseText)
.map(negociacao => new Negociacao(new Date(negociacao.data), negociacao.quantidade, negociacao.valor)));
}
else {
reject("Um erro ocorreu ao tentar realizar a importação de negociações.");
}
}
}
xhr.send();
});
}
Mesmo quando eu troco o
Promise.all()
para
new Promise().all
na tentativa de solucionar, recebo o erro:
Promise resolver undefined is not a function
Como posso resolver isso? Obrigado desde já!