Мне интересно, есть ли различия между этими двумя функциями:
function testObservable(message: string) : Observable<string>{
return new BehaviorSubject(message);
}
function testObservable(message: string) : Observable<string>{
return of(message);
}
Я возвращаю new BehaviorSubject(T)
в AsyncValidatorFn
, и я получаю другое поведение, что если я вернусьof(T)
ОБНОВЛЕНИЕ - КОД ВАЛИДАЦИИ
export function createPasswordMatchesWithServerValidator(
passwordMatchesWithServerService: PasswordMatchesWithServerService
): AsyncValidatorFn {
const wrongPassword = 'password';
return (c: FormControl): Observable<ValidationErrors | null> => {
passwordMatchesWithServerService.check(c.value);
return passwordMatchesWithServerService.checkIfValidOldPassword$.pipe(
map(response => {
let error = {};
error[wrongPassword] = true;
switch (response.state) {
case ResponseState.Success:
console.log('Validation Success: ', response.content);
break;
case ResponseState.Failure:
console.log('Validation Fail: ', response);
error = {};
error[wrongPassword] = true;
break;
case ResponseState.Loading:
console.log('Validation Loading...');
break;
}
return error;
}
)
);
};
}
Если я вернусь:
const error = {};
error[wrongPassword] = true;
return of(error);
это просто отлично работает