Class AsyncSubject<T>

  • Type Parameters:
    T - the type of item expected to be observed by the Subject
    All Implemented Interfaces:
    Observer<T>


    public final class AsyncSubject<T>
    extends Subject<T,T>
    Subject that publishes only the last item observed to each Observer that has subscribed, when the source Observable completes.

    Example usage:

      // observer will receive no onNext events because the subject.onCompleted() isn't called. AsyncSubject<Object> subject = AsyncSubject.create(); subject.subscribe(observer); subject.onNext("one"); subject.onNext("two"); subject.onNext("three"); // observer will receive "three" as the only onNext event. AsyncSubject<Object> subject = AsyncSubject.create(); subject.subscribe(observer); subject.onNext("one"); subject.onNext("two"); subject.onNext("three"); subject.onCompleted();  
    • Constructor Detail

      • AsyncSubject

        protected AsyncSubject(Observable.OnSubscribe<T> onSubscribe,
                               rx.subjects.SubjectSubscriptionManager<T> state)
    • Method Detail

      • create

        public static <T> AsyncSubject<T> create()
        Creates and returns a new AsyncSubject.
        Type Parameters:
        T - the result value type
        Returns:
        the new AsyncSubject
      • hasObservers

        public boolean hasObservers()
        Description copied from class: Subject
        Indicates whether the Subject has Observers subscribed to it.
        Specified by:
        hasObservers in class  Subject<T,T>
        Returns:
        true if there is at least one Observer subscribed to this Subject, false otherwise
      • hasValue

        @Beta
        public boolean hasValue()
        Check if the Subject has a value.

        Use the getValue() method to retrieve such a value.

        Note that unless hasCompleted() or hasThrowable() returns true, the value retrieved by getValue() may get outdated.

        Returns:
        true if and only if the subject has some value but not an error
      • hasThrowable

        @Beta
        public boolean hasThrowable()
        Check if the Subject has terminated with an exception.
        Returns:
        true if the subject has received a throwable through onError.
      • hasCompleted

        @Beta
        public boolean hasCompleted()
        Check if the Subject has terminated normally.
        Returns:
        true if the subject completed normally via onCompleted()
      • getValue

        @Beta
        public T getValue()
        Returns the current value of the Subject if there is such a value and the subject hasn't terminated with an exception.

        The method can return null for various reasons. Use hasValue(), hasThrowable() and hasCompleted() to determine if such null is a valid value, there was an exception or the Subject terminated without receiving any value.

        Returns:
        the current value or null if the Subject doesn't have a value, has terminated with an exception or has an actual null as a value.
      • getThrowable

        @Beta
        public Throwable getThrowable()
        Returns the Throwable that terminated the Subject.
        Returns:
        the Throwable that terminated the Subject or null if the subject hasn't terminated yet or it terminated normally.