@Pogran

Как создать асинхронный валидатор формы?

Я хочу создать ассинхронный валидатор с помощью 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 тут поможет , только как на него завязаться
  • Вопрос задан
  • 220 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы