Я хочу создать ассинхронный валидатор с помощью observable, только вот не знаю возможно ли такое. Сейчас только получается сделать через промисы, но это не то.
//вызов
this.userForm = fb.group({
firstName : null,
surname : null,
username : null,
email : [null, Validators.compose([Validators.required, Validators.minLength(5)]), ValidationService.uniqueEmail],
password : '',
role : '',
state : '',
phone : '',
})
static uniqueEmail(control: FormControl) {
return Promise.resolve().then(() => {
setTimeout(() => {
console.log('ttt');
if(control.value == 'test@gmail.com') {
return null;
} else {
return { 'notUnique' : true };
}
}, 2000);
});
}
Смысл в том что я хочу проверять уникальность email , но с промиссами так не получится т.к хочу использовать задержку , используя debounceTime(500) . Принцип должен быть такой. Пользователь вводит данные, у нас стоит задержка на 0,5 секунды, затем идет запрос, но если пользователь обратно продолжит вводить данные, данный запрос надо отменить и отправлять новый. как такое можно реализовать? думаю что только observable тут поможет , только как на него завязаться