execute method

Future<ABUSResult> execute(
  1. InteractionDefinition interaction, {
  2. bool? optimistic,
  3. Duration? timeout,
  4. bool autoRollback = true,
  5. BuildContext? context,
})

Execute an interaction with proper queuing and safety

Implementation

Future<ABUSResult> execute(
  InteractionDefinition interaction, {
  bool? optimistic,
  Duration? timeout,
  bool autoRollback = true,
  BuildContext? context,
}) async {
  if (_disposed) {
    return ABUSResult.error('Manager disposed',
        interactionId: interaction.id);
  }

  return _queue.enqueue(_QueuedInteraction(
    definition: interaction,
    execute: () => _executeInternal(
      interaction,
      optimistic: optimistic,
      timeout: timeout,
      autoRollback: autoRollback,
      context: context,
    ),
  ));
}