- java.lang.Object
-
- io.smallrye.mutiny.groups.MultiOnSubscribe<T>
-
- Type Parameters:
T- the type of item
public class MultiOnSubscribe<T> extends java.lang.ObjectGroup to configure the action to execute when the observedMultisends aFlow.Subscription. The downstream don't have a subscription yet. It will be passed once the configured action completes.For example:
multi.onSubscription().invoke(sub -> System.out.println("subscribed")); // Delay the subscription by 1 second (or until an asynchronous action completes) multi.onSubscription().call(sub -> Uni.createFrom(1).onItem().delayIt().by(Duration.ofSecond(1)));
-
-
Constructor Summary
Constructors Constructor Description MultiOnSubscribe(Multi<T> upstream)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Multi<T>call(java.util.function.Function<? super java.util.concurrent.Flow.Subscription,Uni<?>> action)Produces a newMultiinvoking the given @{code action} when thesubscriptionevent is received.Multi<T>call(java.util.function.Supplier<Uni<?>> action)Produces a newMultiinvoking the given @{code action} when thesubscriptionevent is received.Multi<T>invoke(java.lang.Runnable callback)Produces a newMultiinvoking the given callback when thesubscriptionis received.Multi<T>invoke(java.util.function.Consumer<? super java.util.concurrent.Flow.Subscription> callback)Produces a newMultiinvoking the given callback when thesubscriptionis received.
-
-
-
Method Detail
-
invoke
@CheckReturnValue public Multi<T> invoke(java.util.function.Consumer<? super java.util.concurrent.Flow.Subscription> callback)
Produces a newMultiinvoking the given callback when thesubscriptionis received.The callback in invoked before passing a subscription event downstream. If the callback throws an exception, the downstream receives a subscription and the failure immediately.
- Parameters:
callback- the callback, must not benull.- Returns:
- the new
Multi
-
invoke
@CheckReturnValue public Multi<T> invoke(java.lang.Runnable callback)
Produces a newMultiinvoking the given callback when thesubscriptionis received.The callback in invoked before passing a subscription event downstream. If the callback throws an exception, the downstream receives a subscription and the failure immediately.
- Parameters:
callback- the callback, must not benull.- Returns:
- the new
Multi
-
call
@CheckReturnValue public Multi<T> call(java.util.function.Function<? super java.util.concurrent.Flow.Subscription,Uni<?>> action)
Produces a newMultiinvoking the given @{code action} when thesubscriptionevent is received.Unlike
invoke(Consumer), the passed function returns aUni. When the producedUnisends the subscription, the function is called. The subscription event is passed downstream only when theUnicompletes. If the producedUnifails or if the function throws an exception, the failure is propagated downstream.- Parameters:
action- the callback, must not benull- Returns:
- the new
Multi
-
call
@CheckReturnValue public Multi<T> call(java.util.function.Supplier<Uni<?>> action)
Produces a newMultiinvoking the given @{code action} when thesubscriptionevent is received.Unlike
invoke(Consumer), the passed function returns aUni. When the producedUnisends the subscription, the supplier is called. The subscription event is passed downstream only when theUnicompletes. If the producedUnifails or if the function throws an exception, the failure is propagated downstream.- Parameters:
action- the callback, must not benull- Returns:
- the new
Multi
-
-