Na classe "NegociacaoService" quando indico que o retorno do método é "Promise" de um vetor de "Negociacao", obtenho um erro de compilação e aparentemente é porque esse método pode retornar nulo. Então, permiti que o método também retorne nulo. Isso acarretou em um erro na Controller, na hora de realizar o forEach das negociações. Para corrigir isso coloquei um "if" que verifica se "negociacoes" é nulo.
No vídeo esse erro não acontece, então não sei se deixei passar alguma coisa. Porém se for isso mesmo, gostaria de saber se existe alguma outra maneira, ou se essa é uma boa maneira para tratar esse erro.
obterNegociacoes(handler: Function): Promise<Negociacao[] | void> {
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.message));
}
this._service
.obterNegociacoes(isOk)
.then(negociacoes => {
if(negociacoes != null)
negociacoes.forEach(negociacao =>
this._negociacoes.adiciona(negociacao))
this._negociacoesView.update(this._negociacoes);
}););
});