public abstract AsyncTransactionManager.AsyncTransactionStep<Void,O> <O>then(AsyncTransactionManager.AsyncTransactionFunction<Void,O> function, Executor executor)
Sets the first step to execute as part of this transaction after the transaction has started
using the specified executor. MoreExecutors#directExecutor() can be be used for
lightweight functions, but should be avoided for heavy or blocking operations. See also
ListenableFuture#addListener(Runnable, Executor) for further information.