code: public static VertxCompletableFuture<Void> runAsync(Vertx vertx, Runnable runnable) {
      return runAsync(Objects.requireNonNull(vertx).getOrCreateContext(), runnable);
    }
docs: Returns a new CompletableFuture that is asynchronously completed by a task running in the
  current Vert.x {@link Context} after it runs the given action.
  <p>
  This method is different from {@link CompletableFuture#supplyAsync(Supplier)} as it does not use a fork join
  executor, but use the Vert.x context.
  
  @param vertx    the Vert.x instance
  @param runnable the action to run before completing the returned CompletableFuture
  @return the new CompletableFuture