executeAsync method

Future<T> executeAsync()

Implementation

Future<T> executeAsync() async {
  if (_state == CommandState.running) {
    return _value;
  }

  _state = CommandState.running;
  _errorWrapper = null;
  _notifyListeners();

  try {
    this.validate(_value);

    final rersult = await this.action(_value);

    _value = rersult;
    _state = CommandState.completed;

    return _value;
  } catch (error, stackTrace) {
    _errorWrapper = ErrorWrapper(error, stackTrace);
    _state = CommandState.error;

    throw _errorWrapper!;
  } finally {
    _notifyListeners();
  }
}