Executei o projeto e me deparei com o seguinte erros:
ERROR TypeError: Cannot read properties of undefined (reading 'pipe')
ERROR Error: formGroup expects a FormGroup instance. Please pass one in.
Acredito que tenha algum erro no código a baixo, pois quando eu removo: [this.usuarioExistenteService.usuarioJaExiste()] do novo-usuario.componente.ts o código funciona normalmente:
import { Injectable } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { NovoUsuarioService } from './novo-usuario.service';
import { first, map, switchMap } from 'rxjs/operators';
@Injectable({
providedIn: 'root',
})
export class UsuarioExisteService {
constructor(private _novoUsuarioService: NovoUsuarioService) {}
usuarioJaExiste() {
return (control: AbstractControl) => {
return control.valueChanges.pipe(
switchMap(
(nomeUsuario) => this._novoUsuarioService.verificaUsuarioExistente(nomeUsuario)
),
map((usuarioExiste) =>
usuarioExiste ? { usuarioExistente: true } : null
),
first()
);
};
}
}
Eu já revisei e comparei varias vezes o código do professor com o meu porem ainda não consegui a solução.