createSync2<TResult> method

RxCommand<void, TResult> createSync2 <TResult>(Func<TResult> func, { Observable<bool> canExecute, bool emitInitialCommandResult: false, bool emitLastResult: false, bool emitsLastValueToNewSubscriptions: false, TResult initialLastResult })

Creates a RxCommand for a synchronous handler function with no parameter that returns a value func: handler function canExecute : observable that can be used to enable/disable the command based on some other state change if omitted the command can be executed always except it's already executing isExecuting will issue a bool value on each state change. Even if you subscribe to a newly created command it will issue false emitLastResult will include the value of the last successful execution in all CommandResult events unless there is no new result. For the Observable<CommandResult> that RxCommand publishes in results this normally doesn't make sense if you want to get an initial Result with data==null, error==null, isExceuting==false pass emitInitialCommandResult=true. By default the results Observable and the RxCommand itself behave like a PublishSubject. If you want that it acts like a BehaviourSubject, meaning every new listener gets the last received value, you can set emitsLastValueToNewSubscriptions = true. initialLastResult sets the value of the lastResult property before the first item was received. This is helpful if you use lastResult as initialData of a StreamBuilder

Implementation

static RxCommand<void, TResult> createSync2<TResult>(Func<TResult> func,
    {Observable<bool> canExecute,
    bool emitInitialCommandResult = false,
    bool emitLastResult = false,
    bool emitsLastValueToNewSubscriptions = false,
    TResult initialLastResult}) {
  return new RxCommandSync<void, TResult>(
      (_) => func(), canExecute, emitInitialCommandResult, emitLastResult, emitsLastValueToNewSubscriptions,initialLastResult);
}