Асинхронные валидаторы должны возвращать Promise или Observable и выдавать значение или разрешаться независимо от того, прошла валидация успешно или с ошибкой. В частности, они должны реализовывать AsyncValidatorFn API.
export function isTenAsync(control: AbstractControl):
Observable<ValidationErrors | null> {
const v: number = control.value;
if (v !== 10) {
// Возвращаем объект с ошибкой валидации.
return of({ 'notTen': true, 'requiredValue': 10 });
}
// Возвращаем null, чтобы указать, что ошибки не произошло.
return of(null);
}
Отладка ошибки
Возможно, вы по ошибке использовали синхронный валидатор вместо асинхронного?