public static <F extends Future<Void>> Mono<Void> from(F future) {
		Objects.requireNonNull(future, "future");
		if (future.isDone()) {
			if (!future.isSuccess()) {
				return Mono.error(FutureSubscription.wrapError(future.cause()));
			}
			return Mono.empty();
		}
		return new ImmediateFutureMono<>(future);
	}
@Test
	void testImmediateFutureMonoImmediate() {
		ImmediateEventExecutor eventExecutor = ImmediateEventExecutor.INSTANCE;
		Future<Void> promise = eventExecutor.newFailedFuture(new ClosedChannelException());

		StepVerifier.create(FutureMono.from(promise))
		            .expectError(AbortedException.class)
		            .verify(Duration.ofSeconds(30));
	}