Esse erro apareceu no meu código quando implementei o recurso Async/await, conforme ensinado no vídeo pelo professor Flávio.
Consegui resolver esse problema realizando as seguintes alterações:
NegociaçãoService.ts
import { NegociacaoParcial, Negociacao } from '../models/index';
export class NegociacaoService {
obterNegociacoes(handler: Function): Promise<Negociacao[]> {
return fetch('http://localhost:8080/dados')
.then(res => handler(res))
.then(res => res.json())
.then((dados: NegociacaoParcial[]) =>
dados.map(dado => new Negociacao(new Date(), dado.vezes, dado.montante))
)
.catch(err => {
console.log(err);
return []
});
}
}
NegociacaoController.ts
@throttle()
async importaDados() {
try {
// usou await antes da chamada de this.service.obterNegociacoes()
const negociacoesParaImportar = await this._service
.obterNegociacoes((res: Response) => {
if(res.ok) {
return res;
} else {
throw new Error(res.statusText);
}
});
const negociacoesJaImportadas = this._negociacoes.paraArray();
negociacoesParaImportar
.filter((negociacao: Negociacao) =>
!negociacoesJaImportadas.some(jaImportada =>
negociacao.ehIgual(jaImportada)))
.forEach((negociacao: Negociacao) =>
this._negociacoes.adiciona(negociacao));
this._negociacoesView.update(this._negociacoes);
} catch(err) {
this._mensagemView.update(err.message);
}
}
Se alguém estiver com esse mesmo erro, espero que esse tópico ajude!