transition method

  1. @override
Future<void> transition(
  1. CarpenterWorkflowTransition<TState, TContext> transition
)
override

Implementation

@override
Future<void> transition(
  CarpenterWorkflowTransition<TState, TContext> transition,
) async {
  if (executing || !transition.canExecute(state, context)) return;
  executing = true;
  error = null;
  _last = transition;
  notifyListeners();
  try {
    await transition.execute(context);
    _state = _reduce(state, transition.id);
    completed = availableTransitions.isEmpty;
  } catch (failure) {
    error = failure;
  } finally {
    executing = false;
    notifyListeners();
  }
}