RxCommandListener<TParam, TResult> constructor
RxCommandListener<TParam, TResult> (
- RxCommand<
TParam, TResult> command, { - void onValue(
- TResult? value
- void onIsBusyChange(
- bool isBusy
- void onIsBusy()?,
- void onNotBusy()?,
- void onError(
- dynamic ex
- void onCanExecuteChange(
- bool state
- void onResult(
- CommandResult<
TParam, TResult> result
- CommandResult<
- Duration? debounceDuration,
Implementation
RxCommandListener(
this.command, {
this.onValue,
this.onIsBusyChange,
this.onIsBusy,
this.onNotBusy,
this.onError,
this.onCanExecuteChange,
this.onResult,
this.debounceDuration,
}) {
if (debounceDuration == null) {
if (onValue != null) {
valueSubscription = command.listen(onValue);
}
if (onResult != null) {
resultsSubscription = command.results.listen(onResult);
}
if (onIsBusyChange != null) {
busyChangeSubscription = command.isExecuting.listen(onIsBusyChange);
}
if (onIsBusy != null || onNotBusy != null) {
busySubscription = command.isExecuting.listen((isBusy) {
return isBusy ? this.onIsBusy?.call() : this.onNotBusy?.call();
});
}
} else {
if (onValue != null) {
valueSubscription =
command.debounceTime(debounceDuration!).listen(onValue);
if (onResult != null && debounceDuration != null) {
resultsSubscription =
command.results.debounceTime(debounceDuration!).listen(onResult);
}
if (onIsBusyChange != null) {
busyChangeSubscription = command.isExecuting
.debounceTime(debounceDuration!)
.listen(onIsBusyChange);
}
if (onIsBusy != null || onNotBusy != null) {
busySubscription = command.isExecuting
.debounceTime(debounceDuration!)
.listen((isBusy) =>
isBusy ? this.onIsBusy?.call() : this.onNotBusy?.call());
}
}
}
if (onError != null) {
errorSubscription = command.thrownExceptions.listen(onError);
}
if (onCanExecuteChange != null) {
canExecuteStateSubscription =
command.canExecute.listen(onCanExecuteChange);
}
}