不能将计时器(防抖动目的)与异步验证器一起使用-角反应形式

时间:2019-03-26 11:05:36

标签: angular rxjs angular6 observable angular-reactive-forms

我将通过debounceTime调用API来验证电子邮件地址,社区中有解决方案。

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。

0 个答案:

没有答案