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

Error: Expected validator to return Promise or Observable.

ngOnInit() {

    this.signUpForm = this.formBuilder.group({
      email: ['',
        [
          Validators.required,
          Validators.email
        ]
      ],

      fullName: ['',
        [
          Validators.required,
          Validators.minLength(2),
          Validators.maxLength(40)
        ]
      ],
      userName: [
        '',
        [
            Validators.required,
            lowerCaseValidator,
            Validators.minLength(2),
            Validators.maxLength(30)
        ],
        this.userNotTaken.checkUserNameTaken()
      ],

      password: ['',
        [
          Validators.required,
          Validators.minLength(8),
          Validators.maxLength(14)
        ]
      ]
    });
  }
 checkUserNameTaken() {
        return (control: AbstractControl) => {
            control.valueChanges.pipe(
                debounceTime(300)
            ).pipe(
                switchMap( userName => this.signUpService.checkUserNameTaken(userName) )
            ).pipe(
                map( taken => taken ? {userNameTaken: true} : null)
            ).pipe(
                first()
            );
        };
    }
2 respostas
solução!

Pessoal resolvido, havia esquecido do return do Observable dentro da function

checkUserNameTaken() {
        return (control: AbstractControl) => {
            return control.valueChanges.pipe(
                debounceTime(300)
            ).pipe(
                switchMap( userName => this.signUpService.checkUserNameTaken(userName) )
            ).pipe(
                map( taken => taken ? {userNameTaken: true} : null)
            ).pipe(
                first()
            );
        };
    }

Fala ai Beatriz, tudo bem? Fico feliz que tenha resolvido o problema.

Sempre que precisar não deixe de criar suas dúvidas.

Obs: Vou fechar o tópico, assim, conseguimos ajudar outros alunos com problemas iguais ou parecidos.

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