execute method
- @override
override
Calls the wrapped handler function with an option input parameter
Implementation
@override
execute([TParam param]) {
// print("************ Execute***** canExecute: $_canExecute ***** isExecuting: $_isRunning");
if (!_canExecute) {
return;
}
if (_isRunning) {
return;
} else {
_isRunning = true;
_canExecuteSubject.add(false);
}
_commandResultsSubject.add(new CommandResult<TResult>(_emitLastResult ? lastResult : null, null, true));
_func(param).asStream().handleError((error) {
if (throwExceptions) {
_resultsSubject.addError(error);
return;
}
_commandResultsSubject.add(new CommandResult<TResult>(_emitLastResult ? lastResult : null, error, false));
_isRunning = false;
_isExecutingSubject.add(false);
_canExecuteSubject.add(true);
}).listen((result) {
_commandResultsSubject.add(new CommandResult<TResult>(result, null, false));
lastResult = result;
_resultsSubject.add(result);
_isRunning = false;
_canExecute = !_executionLocked;
_canExecuteSubject.add(!_executionLocked);
});
}