Class UniOnSubscribe<T>

java.lang.Object
io.smallrye.mutiny.groups.UniOnSubscribe<T>
Type Parameters:
T - the type of item

public class UniOnSubscribe<T> extends Object
Group to configure the action to execute when the observed Uni sends a UniSubscription. The downstream don't have a subscription yet. It will be passed once the configured action completes.

Example:

 
 uni.onSubscription().invoke(sub -> System.out.println("subscribed"));
 // Delay the subscription by 1 second (or until an asynchronous action completes)
 uni.onSubscription().call(sub -> Uni.createFrom(1).onItem().delayIt().by(Duration.ofSecond(1)));
 
 
  • Constructor Details

    • UniOnSubscribe

      public UniOnSubscribe(Uni<T> upstream)
  • Method Details

    • invoke

      @CheckReturnValue public Uni<T> invoke(Consumer<? super UniSubscription> callback)
      Produces a new Uni invoking the given callback when the subscription is 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 be null.
      Returns:
      the new Uni
    • invoke

      @CheckReturnValue public Uni<T> invoke(Runnable callback)
      Produces a new Uni invoking the given callback when the subscription is 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 be null.
      Returns:
      the new Uni
    • call

      @CheckReturnValue public Uni<T> call(Function<? super UniSubscription,Uni<?>> action)
      Produces a new Uni invoking the given @{code action} when the subscription event is received.

      Unlike invoke(Consumer), the passed function returns a Uni. When the produced Uni sends the subscription, the function is called. The subscription event is passed downstream only when the Uni completes. If the produced Uni fails or if the function throws an exception, the failure is propagated downstream.

      Parameters:
      action - the callback, must not be null
      Returns:
      the new Uni
    • call

      @CheckReturnValue public Uni<T> call(Supplier<Uni<?>> action)
      Produces a new Uni invoking the given @{code action} when the subscription event is received.

      Unlike invoke(Consumer), the passed function returns a Uni. When the produced Uni sends the subscription, the function is called. The subscription event is passed downstream only when the Uni completes. If the produced Uni fails or if the function throws an exception, the failure is propagated downstream.

      Parameters:
      action - the callback, must not be null
      Returns:
      the new Uni