@Nonnull
    default Promise<Void> thenAcceptDelayedAsync(@Nonnull Consumer<? super V> action, long delay, @Nonnull TimeUnit unit) {
        return thenApplyDelayedAsync(Delegates.consumerToFunction(action), delay, unit);
    }
Returns a new Promise that, when this promise completes normally, is
executed with this promise's result as the argument to the given
action, after the delay has elapsed.

@param action the action to perform before completing the returned future
@param delay the delay
@param unit the unit of delay
@return the new promise
helper/src/main/java/me/lucko/helper/promise/Promise.java