Executei o projeto e me deparei com o seguinte erros:
ERROR Error: Expected validator to return Promise or Observable.
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 o código funciona normalmente
import { NovoUsuarioService } from './novo-usuario.service';
import { Injectable } from '@angular/core';
import { AbstractControl } from '@angular/forms';
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
.verificaUsuarioExistentente(nomeUsuario))
),
map((usuarioExiste) =>
(usuarioExiste ? {usuarioExistente: true} : null)
),
first()
}
}
}