1
resposta

Duvida modulo 5, item 7

Neste código as negociações só serão adicionadas se o retorno do some for TRUE? Quer dizer que ele só passara para o proximo then caso seja TRUE? Por que isso acontece?

** Dúvida marcada com <<< no bloco de código abaixo.

public importaDados(): void {
    this.negociacoesService
      .obterNegociacoesDoDia()
      .then((negociacoesDeHoje) => {
        return negociacoesDeHoje.filter((negociacaoDeHoje) => {
          return !this.negociacoes
            .lista()
            .some((negociacao) => negociacao.ehIgual(negociacaoDeHoje)); // <<<< Aqui, porque ele não adiciona mesmo se a condição for false?
        });
      })
      .then((negociacoesDeHoje) => {
        for (let negociacao of negociacoesDeHoje) {
          this.negociacoes.adiciona(negociacao);
        }
        this.negociacoesView.update(this.negociacoes);
        console.log(this.negociacoes);
      });
  }
1 resposta

Olá Leonardo, tudo bem?

Desculpe a demora em retornar.

Sim, você está correto! Neste código, as negociações só serão adicionadas se o retorno do some for true. Isso significa que, caso exista alguma negociação na lista que seja igual à negociação de hoje, o some retornará true e a negociação não será adicionada.

O motivo disso é que o método some retorna true se pelo menos um elemento do array satisfaz a condição passada como parâmetro. Neste caso, a condição é que a negociação de hoje não pode ser igual a nenhuma negociação já existente na lista. Se a condição for satisfeita, o some retorna true e a negociação não é adicionada.

Espero ter ajudado a esclarecer sua dúvida!

Um abraço e bons estudos.