Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

.next significado

Quando o método decodeAndNotify() da classe UserService é chamado ela pega o token que foi configurado para aquele usuário e coloca na variável token. Depois, esse token é decodificado com a ajuda do jwt e é definido como uma interface do tipo User (que receberá id, nome, email), então a resposta obrigatoriamente tem que retornar essas 3 propriedades e seus valores? Simplesmente porque foi implementada a interface? E depois a dúvida principal, o que esse método .next da classe userSubject faz com o usuário criado?

    private decodeAndNotify() {
        const token = this.tokenService.getToken()
        const user = decodifica(token) as User
        this.userSubject.next(user)
    }
3 respostas
solução

Boa tarde, Lucas! Como vai?

Depois, esse token é decodificado com a ajuda do jwt e é definido como uma interface do tipo User (que receberá id, nome, email), então a resposta obrigatoriamente tem que retornar essas 3 propriedades e seus valores? Simplesmente porque foi implementada a interface?

Na realidade a linha const user = decodifica(token) as User decodifica o token e usa a interface User pra tipar o objeto gerado. O que está sendo feito na realidade é um cast.

E depois a dúvida principal, o que esse método .next da classe userSubject faz com o usuário criado?

Lança uma nova mensagem com o token para todos que estiverem inscritos no subject.

Observação importante: Embora não seja obrigatório no JavaScript e no TypeScript, a utilização do ponto e vírgula ao final das instruções é uma boa prática altamente indicada a ser seguida.

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

Obrigado pelo esclarecimento e pela dica do ;

Por nada, Lucas! Sempre que tiver qualquer dúvida é só mandar aqui no fórum da Alura!

Grande abraço e bons estudos, meu aluno!