No curso Angular parte 2: Aula 4 - Atividade 06 Validador assíncrono, aos 14 min e 20 segs. de vídeo o professor faz uma associação ao método userNameTaken no html
*ngIf="singupForm.get('userName').errors?.userNameTaken"
com o método checkUserNameTaken() da classe UserNotTakenValidatorService
checkUserNameTaken() {
return (control: AbstractControl) => {
return control
.valueChanges
.pipe(debounceTime(300))
.pipe(switchMap(userName => this.singupService.checkUserNameTaken(userName)))
.pipe(map(isTaken => isTaken ? { userNameTaken: true } : null))
.pipe(first())
}
}
A dúvida é:
- Como eu sei que .userNameTaken esta de fato chamando checkUserNameTaken(), pois trocando o nome .userNameTaken para qualquer outra coisa (Ex.: .bla), o método continua funcionando. Poderia me explicar melhor este trecho e o que ele faz ?