run method
Implementation
Future<T> run({
required T initialData,
StepListener? listener,
}) async {
var transaction = initialData;
for (final step in steps) {
listener?.onStepChanged(step, StepStatus.inProgress);
try {
final updatedTransaction = await step.handle(transaction);
listener?.onStepChanged(step, StepStatus.completed);
transaction = updatedTransaction;
} on Exception catch (error) {
listener?.onStepChanged(step, StepStatus.error, error);
rethrow;
}
}
return transaction;
}