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!