createAsync<TParam, TResult> static method

Command<TParam, TResult> createAsync<TParam, TResult>(
  1. Future<TResult> func(
    1. TParam x
    ), {
  2. required TResult initialValue,
  3. ValueListenable<bool>? restriction,
  4. ExecuteInsteadHandler<TParam>? ifRestrictedExecuteInstead,
  5. bool includeLastResultInCommandResults = false,
  6. ErrorFilter? errorFilter,
  7. bool notifyOnlyWhenValueChanges = false,
  8. String? debugName,
})

Creates a Command for an asynchronous handler function with parameter that returns a value func : handler function initialValue sets the .value of the Command. restriction : ValueListenable<bool> that can be used to enable/disable the command based on some other state change. true means that the Command cannot be executed. If omitted the command can be executed always except it's already executing ifRestrictedExecuteInstead if restriction is set for the command and its value is true this function will be called instead of the wrapped function. This is useful if you want to execute a different function when the command is restricted. For example you could show a dialog to let the user logg in if the restriction is because the user is not logged in. If you don't set this function, the command will just do nothing when it's restricted. includeLastResultInCommandResults will include the value of the last successful execution in all CommandResult values unless there is no result. This can be handy if you always want to be able to display something even when you got an error or while the command is still running. errorFilter : overrides the default set by errorFilterDefault. If false, Exceptions thrown by the wrapped function won't be caught but rethrown unless there is a listener on errors or results. notifyOnlyWhenValueChanges : the default is that the command notifies it's listeners even if the value hasn't changed. If you set this to true the command will only notify it's listeners if the value has changed. debugName optional identifier that is included when you register a globalExceptionHandler or a loggingHandler

Implementation

static Command<TParam, TResult> createAsync<TParam, TResult>(
  Future<TResult> Function(TParam x) func, {
  required TResult initialValue,
  ValueListenable<bool>? restriction,
  ExecuteInsteadHandler<TParam>? ifRestrictedExecuteInstead,
  bool includeLastResultInCommandResults = false,
  ErrorFilter? errorFilter,
  bool notifyOnlyWhenValueChanges = false,
  String? debugName,
}) {
  return CommandAsync<TParam, TResult>(
    func: func,
    initialValue: initialValue,
    restriction: restriction,
    ifRestrictedExecuteInstead: ifRestrictedExecuteInstead,
    includeLastResultInCommandResults: includeLastResultInCommandResults,
    noReturnValue: false,
    errorFilter: errorFilter,
    notifyOnlyWhenValueChanges: notifyOnlyWhenValueChanges,
    debugName: debugName,
    noParamValue: false,
  );
}