Ao fazer a melhora no código e deixá-lo mais legível retirando a promise NegociaçãoService aconteceu comigo a seguinte situação:
Por termos retirado a promise, precisamos retirar o resolve
e trocá-lo por return
sem esquecer de tirar os ()
. No exemplo tem também um console.log()
e por isso foi necessário ter um bloco {}
.
Quando fui fazer no meu código, não coloquei o console.log()
e por isso mantive o return
sem bloco {}
por ser uma única linha. E para minha surpresa, recebi erro no console e só consegui resolver após adicionar um bloco {}
no return
.
O mesmo acontece para o throw
Exemplo funcionando:
return this._http
.get('negociacoes/anterior')
.then(negociacoes => {return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor))})
.catch(erro => {throw new Error('Não foi possível obter as negociações da semana retrasada')})
Exemplo dando erro no console (Unexpected token return):
return this._http
.get('negociacoes/anterior')
.then(negociacoes => return negociacoes.map(objeto => new Negociacao(new Date(objeto.data), objeto.quantidade, objeto.valor)))
.catch(erro => throw new Error('Não foi possível obter as negociações da semana retrasada'))
Por que?