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

Explique o código "this.user$.subscribe(user => this.user = user);"

Gostaria que me explicassem ponto a ponto a parte do código da aula: this.user$.subscribe(user => this.user = user);

5 respostas
solução!

Fala ai Mauricio, tudo bem? Vamos lá.

O this.user$ é um Observable e uma das funções disponibilizadas pela classe Observable é a subscribe.

Basicamente a subscribe fica ouvindo quando o seu Observable tem um novo valor, ou seja, quando ele executa o .next.

Seria algo simiular a Promise, onde a Promise seria um Observable e o .then seria o .subscribe (apenas uma analogia, o funcionamento por baixo e a ideia de ambos são diferentes).

Quando você faz: this.user$.subscribe(user => this.user = user) você registrou uma nova função que ficará ouvindo e esperando por novos valores vindo do seu Observable no caso o this.user$.

Espero ter ajudado.

Ok, boa explicação, mas vc não explicou em detalhes a parte da arrow function: user => this.user = user

Está confuso para mim.

Fala Mauricio, a parte da arrow function vai pegar o usuário que está chegando através do Observable e atualizar o atributo da classe chamado user com o novo usuário que chegou.

user => // recebendo novo usuário
this.user // atributo da classe do seu componente
this.user = user // atribuindo o novo usuário para o atributo da classe
user => this.user = user

Espero ter ajudado.

Seria o equivalente a:

function(user) { this.user = user; } Correto?

Fala ai Mauricio, tudo bem? Correto, é isso mesmo.

Só muda no trecho seu é uma função normal, ou seja, declaration function, já no código da aula é uma arrow function:

https://blog.matheuscastiglioni.com.br/definindo-funcoes-em-javascript/

Abraços.

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