@Nonnull
    default Promise<Void> thenRunSync(@Nonnull Runnable action) {
        return thenApplySync(Delegates.runnableToFunction(action));
    }
Returns a new Promise that, when this promise completes normally, executes
the given task.

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