Вам, вероятно, придется отказать за пределами валидатора.Validator будет вызываться непрерывно, если источник входного сигнала продолжает излучать, и установка debounce после того, как вызов http ничего не делает.
export class UrlValidator {
static controlValue=new Subject()
static createValidator(http: HttpClient) {
UrlValiator.controlValue.next(control.value)
return (control: AbstractControl) => {
return controlValue.pipe(
debounceTime(1500),
switchMap(()=>http(url))
catchError(err => {
console.log('err', err);
if (err.status && err.status === 200) return of(null);
return of({ input: 'urlError' });
})
);
};
}
}