Com a solução apresentada, quando ocorre erro a mensagem exibida na caixa fica "Error: Error: Não foi possível obter as negociações da semana". Pelo que percebi isso ocorre pois temos um
throw new Error('Não foi possível obter as negociações da semana'); em obterNegociacoesDaSemana() que irá retornar para a nova função obterNegociacoes() que por sua vez faz um catch neste erro e lança um novo
throw new Error(erro);Pergunta 1: Cada um desses "throw new Error" está adicionando a String "Error:" à frente da String 'Não foi possível obter as negociações da semana'?
Pesquisando encontrei que é possível fazer isto em obterNegociacoesDaSemana()
throw 'Não foi possível obter as negociações da semana'; ao invés de
throw new Error('Não foi possível obter as negociações da semana'); e em obterNegociacoes() fazer isto
.catch( erro => {
throw erro;
});ao invés de
.catch( erro => {
throw new Error(erro);
});o que, aparentemente, "resolve" o problema do "Error: Error: ..." no texto da mensagem que aparece pro usuário. O que nos leva a Pergunta 2.
Pergunta 2: Quais as implicações de lançar uma String ao invés de um objeto do tipo Error?