Na Aula 5, Atividade 4, é implementado o HttpService. Implementei conforme o video/transcrição e ao tentar executar me retorna a mensagem de erro TypeError: this._http.get(...).then(...).cacth is not a function.
Não estou conseguindo identificar onde está o problema, poderiam me ajudar?
HttpService.js
class 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) {
resolve(JSON.parse(xhr.responseText));
} else {
console.log(xhr.responseText);
reject(xhr.responseText);
}
}
}
xhr.send();
});
}
}
NegociacaoService.js
class NegociacaoService {
constructor() {
this._http = new HttpService();
}
obterNegociacoesDaSemana() {
return new Promise((resolve, reject) => {
this._http
.get('negociacoes/semana')
.then(negociacoes => {
resolve(negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
})
.cacth(erro => {
console.log(erro);
reject('Não foi possível obter as negociações da semana');
})
});
}
obterNegociacoesDaSemanaAnterior() {
return new Promise((resolve, reject) => {
this._http
.get('negociacoes/anterior')
.then(negociacoes => {
resolve(negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
})
.cacth(erro => {
console.log(erro);
reject('Não foi possível obter as negociações da semana anterior.');
})
});
}
obterNegociacoesDaSemanaRetrasada(cb) {
return new Promise((resolve, reject) => {
this._http
.get('negociacoes/retrasada')
.then(negociacoes => {
resolve(negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)));
})
.cacth(erro => {
console.log(erro);
reject('Não foi possível obter as negociações da semana retrasada');
})
});
}
}
NegociacaoController.js
importaNegociacoes() {
let service = new NegociacaoService();
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';
})
.catch(error => this._mensagem.texto = error);
}