异步验证器抛出预期验证器以返回Promise或Observable

异步验证器抛出预期验证器以返回Promise或Observable

问题描述:

我试图用密码值确认密码。我按照异步验证器标准完成了。但我想知道它不起作用,并抛出以下错误。请告诉任何人如何解决这个错误。异步验证器抛出预期验证器以返回Promise或Observable

预期验证器返回Promise或Observable。

这是我的代码。

呼叫校验:

cPass: ['', Validators.compose([ 
    Validators.required, 
    Validators.maxLength(32), 
    Validators.minLength(10) 
]), 
    this.validPassword.bind(this) 
] 

自定义验证功能可按:

validPassword(control: AbstractControl) {    
    const isEqual = Observable.of(this.password == control.value); 
    return isEqual ? { valid : true } : null;   
} 

错误本身就说明:

预期验证返回承诺或观察到。

您在function中返回object|null

只是将其更改为:

validPassword(control: AbstractControl) { 
    return observableOf('12345678910' === control.value).pipe(
    map(result => result ? { invalid: true } : null) 
); 
} 

STABKBLITZ DEMO