Невозможно использовать таймер (цель отладки) с асинхронным валидатором - угловая реактивная форма - PullRequest
0 голосов
/ 26 марта 2019

Я собираюсь вызвать API для проверки адреса электронной почты с помощью debounceTime, в сообществе есть решения.

new FormGroup({
            firstName: new FormControl(cachedValue.firstName, [Validators.required]),
            lastName: new FormControl(cachedValue.lastName, [Validators.required]),
            email: new FormControl(cachedValue.email, [Validators.required, Validators.email],
                [this.validateUniqueValueEmail]),
            phone: new FormControl(+cachedValue.phone, [Validators.required],
                [])

        });

private validateUniqueValueEmail(control): Observable<ValidationErrors | null> {
        return timer(500).pipe(
            switchMap((res) => {
                console.log(res);
                return of({validationError: 'This email is already taken'});
            }),
        );
    }

Предполагается, что это работает, но я получаю следующую ошибку.

core.js: 14597 ОШИБКА TypeError: Вы указали недопустимый объект, где ожидался поток. Вы можете предоставить Observable, Promise, Array или Iterable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...