Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida teórica do SwitchMap

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

2 respostas

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.

solução!

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!