code: public static <T> VertxCompletableFuture<T> supplyAsync(Vertx vertx, Supplier<T> supplier) {
      return supplyAsync(Objects.requireNonNull(vertx).getOrCreateContext(), supplier);
    }
docs: Returns a new CompletableFuture that is asynchronously completed by a task running in the current Vert.x
  {@link Context} with the value obtained by calling the given Supplier.
  <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 supplier a function returning the value to be used to complete the returned CompletableFuture
  @param <T>      the function's return type
  @return the new CompletableFuture