execute method
- @override
override
Calls the wrapped handler function with an option input parameter
Implementation
@override
void execute([TParam param]) {
if (!_canExecute) {
return;
}
if (_isRunning) {
return;
} else {
_isRunning = true;
_canExecuteSubject.add(false);
}
_commandResultsSubject.add(new CommandResult<TResult>(_emitLastResult ? lastResult : null, null, true));
try {
final result = _func(param);
lastResult = result;
_commandResultsSubject.add(new CommandResult<TResult>(result, null, false));
_resultsSubject.add(result);
} catch (error) {
if (throwExceptions) {
_resultsSubject.addError(error);
return;
}
_commandResultsSubject.add(new CommandResult<TResult>(_emitLastResult ? lastResult : null, error, false));
} finally {
_isRunning = false;
_canExecuteSubject.add(!_executionLocked);
}
}