1
resposta

[Dúvida] Duvida no desafio final totalItens

  livrosEncontrados$ = this.campoBusca.valueChanges
  .pipe(
    debounceTime(PAUSA),
    filter((valorDigitado) => valorDigitado.length >= 3),
    tap(() => console.log('fluxo inicial')),
    //distinctUntilChanged(),
    switchMap((valorDigitado) => this.service.buscar(valorDigitado)),
    map(res => this.livrosResultado = res),
    tap((res) => console.log('requisicao ao servidor : ', res)),
    map(res => res.items ?? []),
    map((items) => this.livrosResultadoParaLivros(items)),
    catchError(erro => {
      // this.mensagemErro = 'ops, phodeo!!!'
      // return EMPTY
      console.log(erro)
      return throwError(() => new Error(this.mensagemErro = 'ops, phodeo!!!'))
    })
  );

Porque quando eu descomento o distinctUntilChanged() ele quebra o pipe ?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta

Opa Estudante, tudo certo?

O operador distinctUntilChanged() é usado para garantir que apenas valores distintos sejam emitidos pelo fluxo. Ele compara o valor atual com o valor anterior e só emite o valor atual se eles forem diferentes.

Nesse caso, descomentar o distinctUntilChanged() pode estar acarretando que nenhum valor seja emitido pelo fluxo, o que pode quebrar o pipe. Isso pode ocorrer se o valor digitado for o mesmo que o valor anteriormente emitido.

Fico à disposição.

Tenha um bom dia e bons estudos.