Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Simplificando o código

Consegui simplificar ainda mais o código do Desafio, fucionou corretamente.

Controller

importaNegociacao(){
      let service = new NegociacaoService();
      service.obterNegociacoes(this._listaNegociacoes.adiciona , this._mensagem.texto)
      }

Service

obterNegociacoes(acao, texto){

   Promise.all(
     [this._obterNegociacaoDaSemana(),
      this._obterNegociacaoDaSemanaAnterior(),
      this._obterNegociacaoDaSemanaRetrasada()]
   )
     .then(negociacoes => { negociacoes
     .reduce((arrayAchatado, array) => arrayAchatado.concat(array), [])
     .forEach(negociacao => acao(negociacao));
      texto = 'Negociações importadas com sucesso';
   })
     .catch(erro => texto = erro );
}
3 respostas

erro no código ==> não exibe o erro

Consegui essa solução: Service

obterNegociacoes(acao, mensagem){
      return Promise.all(
     [this._obterNegociacaoDaSemana(),
      this._obterNegociacaoDaSemanaAnterior(),
      this._obterNegociacaoDaSemanaRetrasada()]
   )
     .then((negociacoes, mensagem) => { negociacoes
     .reduce((arrayAchatado, array) => arrayAchatado.concat(array), [])
     .forEach(negociacao => acao(negociacao));
   })
     .catch(erro => {
       throw  (erro);} );
};

Controller

  importaNegociacao(){
      let service = new NegociacaoService();
      service.obterNegociacoes(this._listaNegociacoes.adiciona)
      .then(this._mensagem.texto = 'Negociações importadas com sucesso')
      .catch(erro => this._mensagem.texto = erro )
      }

Está fucionando perfeitamente Creico que o problema anterior é que o "service" não consegue modificar o ' this._mensagem.texto' quando ele é recebido como parâmetro da função.. Alguém pode me explicar isso? e também avaliar o código acima

solução!

Fala ai Lucas, tudo bem? Vamos lá:

Creico que o problema anterior é que o "service" não consegue modificar o ' this._mensagem.texto' quando ele é recebido como parâmetro da função.. Alguém pode me explicar isso? e também avaliar o código acima

Olhando o primeiro código, quando ocorresse algum erro:

.catch(erro => texto = erro )

Nesse ponto você está alterando o parâmetro texto da função obterNegociacoes, sendo assim, ele não vai mostrar o erro mesmo.

Já com o novo código:

.catch(erro => this._mensagem.texto = erro )

Agora você está alterando a propriedade texto do objeto _mensagem e não mais o parâmetro da função.

Espero ter ajudado.