public static <F extends Future<Void>> Mono<Void> deferFuture(Supplier<F> deferredFuture) {
		return new DeferredFutureMono<>(deferredFuture);
	}
@SuppressWarnings("FutureReturnValueIgnored")
	@Test
	void testDeferredFutureMonoLater() {
		ImmediateEventExecutor eventExecutor = ImmediateEventExecutor.INSTANCE;
		Promise<Void> promise = eventExecutor.newPromise();
		Supplier<Promise<Void>> promiseSupplier = () -> promise;

		StepVerifier.create(FutureMono.deferFuture(promiseSupplier))
		            .expectSubscription()
		            .then(() -> promise.setFailure(new ClosedChannelException()))
		            .expectError(AbortedException.class)
		            .verify(Duration.ofSeconds(30));
	}