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

Não entendi o operator SwitchMap

Nesta linha:

pipe(switchMap(route => route.data))

Não entendi como funciona o SwitchMap. Poderia me explicar qual a função dele usando este contexto como exemplo?

5 respostas

Fala ai Pedro, tudo bem? Vamos lá:

Não entendi como funciona o SwitchMap. Poderia me explicar qual a função dele usando este contexto como exemplo?

O switchMap recebe um Observable e devolve um novo, nesse cenário, ele está recebendo um Observable do map anterior:

.pipe(map(() => this.activatedRoute))

Como valor desse Observable está chegando o activatedRoute e ele está devolvendo um Observable novo que vai conter as informações da rota: route.data.

Espero te ajudado.

Mas o map anterior não é esse?

.pipe(map(route => {
          while(route.firstChild) route = route.firstChild;
          return route;
        }))

Além disso, o map

.pipe(map(() => this.activatedRoute))

Só foi feito para devolver um Observable com o valor de this.activatedRoute? Se sim, por que não usar esse valor direto da variável que foi injetada?

solução!

Fala Pedro, vamos lá:

Mas o map anterior não é esse?

Sim, você está certo, acabei pegando uma parte do código na transcrição que não estava completa, o map anterior é exatamente esse, falha minha.

Só foi feito para devolver um Observable com o valor de this.activatedRoute? Se sim, por que não usar esse valor direto da variável que foi injetada?

Isso já envolve a maneira como cada um escreve seus códigos e lógicas, durante a aula o instrutor achou melhor fazer dessa maneira, assim conseguimos enxergar o fluxo através do cadeias de pipe.

O mesmo poderia ser escrito de outros N jeitos, vai como cada um gosta e tem seus estilos pessoais.

Espero ter ajudado.

Entendo, muito obrigado.

Magina Pedro, sempre que precisar não deixe de criar suas dúvidas.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software