Boa noite,
Não consegui entender 100% da utilização do SwitchMap.
A ideia principal dele é poder executar dois ou mais observables tendo a reposta de todos em um único subscribe?
abs
Boa noite,
Não consegui entender 100% da utilização do SwitchMap.
A ideia principal dele é poder executar dois ou mais observables tendo a reposta de todos em um único subscribe?
abs
O switchMap serve para que, por exemplo, se você fizer 5 requisições, ele irá processar apenas a última delas, que é a que realmente importa para nós, construiremos nosso objeto uma vez e substituiremos o array somente uma vez. Resumindo: usando switchMap todos os requests anteriores serão ignorados se um novo evento chegar.
Boa noite, Bruno! Como vai?
O switchMap() é um operador de transformação do RxJS! Ele permite que vc trate o resultado (valor emitido) de um Observable ( vamos chamar esse cara de obs1 pra facilitar o entendimento ) e te obriga a retornar um novo Observable ( o obs2 ). Só que tem um detalhe! O switchMap() finalizará automaticamente o Observable cujo valor emitido tenha sido capturado por ele ( nesse caso o obs1 ). Esse detalhe é de extrema importância pois evita em determinadas situações um problema muito conhecido: o memory leak!
Sendo assim, se vc tiver uma sequência de switchMap(), o subscribe() que vc fizer no final dirá respeito apenas ao último Observable retornado pelo último switchMap()!
Para saber mais:
Como no mundo da programação nada se cria, tudo se copia, eu indico esse post aqui do fórum da Alura onde o mestre Flávio exemplifica de forma programática isso que eu acabei de falar!
Além disso, uma fonte muito boa é a própria documentação do switchMap()! Nessa página da documentação, rola inclusive uma comparação entre o switchMap() e seu irmão quase gêmeo mergeMap()! Vale a pena dar uma olhada!
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!