Boa tarde!
Primeiramente parabéns pelo curso, elucidou várias dúvidas que eu tinha!! Fiquei apenas com uma a respeito do merge, em relação a essa parte do código:
todasAcoes$ = this.acoesService.getAcoes().pipe(
tap(() => {
console.log('Fluxo Inicial');
})
);
filtroPeloInput$ = this.acoesInput.valueChanges.pipe(
debounceTime(ESPERA_DIGITACAO),
tap(() => {
console.log('Fluxo do Filtro');
}),
tap(console.log),
filter(
(valorDigitado) => valorDigitado.length >= 3 || !valorDigitado.length
),
distinctUntilChanged(),
switchMap((valorDigitado) => this.acoesService.getAcoes(valorDigitado)),
tap(console.log)
);
acoes$ = merge(this.todasAcoes$, this.filtroPeloInput$);
Eu acredito que, como sou iniciante em Angular, seja algum conceito que não tenha entendido desse trecho de código. O cálculo de todasAcoes$ só é feito uma única vez, correto? Quando o usuário começa a digitar no input, a ação valueChanges começa a ser invocada e consequentemente trazer os registros filtrados. Sempre que eu alterar o valor de this.todasAcoes$ ou this.filtroPeloInput$ o merge será feito novamente? Quando faço a primeira pesquisa e o valor de this.filtroPeloInput$ é preenchido, quando for executado o merge, o valor de this.todasAcoes$ estará vazio?
Obrigado!