ObservableBase<T> constructor
ObservableBase<T> (
- Validator? _validator
Create an observable with validator
Implementation
ObservableBase(this._validator) {
if (_validator != null) {
var c = 0;
_validate = Computed<int>(() {
var v = _validator!.validate(value);
if (v is Future) {
if (_status != ValidateStatus.pending) {
_status = ValidateStatus.pending;
_validatedNotify();
}
(v as Future<String?>).then((s) {
_error = s;
_status =
_error == null ? ValidateStatus.valid : ValidateStatus.invalid;
_validatedNotify();
});
} else {
if (_error != v) {
_error = v;
_status =
_error == null ? ValidateStatus.valid : ValidateStatus.invalid;
_validatedNotify();
}
}
return ++c;
});
_validate.listen(() {
_validateFunc = null;
if (_validate.subcriptions
.any((element) => element.observable == this)) {
var sub = _validate.subcriptions
.firstWhere((element) => element.observable == this);
_validateFunc = sub.callback;
_callbacks.remove(_validateFunc);
_validate.subcriptions.remove(sub);
}
});
}
}