PublishSubject<T> class
Exactly like a normal broadcast StreamController with one exception: this class is both a Stream and Sink.
This Subject allows sending data, error and done events to the listener.
PublishSubject is, by default, a broadcast (aka hot) controller, in order
to fulfill the Rx Subject contract. This means the Subject's stream
can
be listened to multiple times.
Example
final subject = PublishSubject<int>();
// observer1 will receive all data and done events
subject.stream.listen(observer1);
subject.add(1);
subject.add(2);
// observer2 will only receive 3 and done event
subject.stream.listen(observer2);
subject.add(3);
subject.close();
- Inheritance
-
- Object
- Stream<
T> - StreamView<
T> - Subject<
T> - PublishSubject
- Available extensions
- BufferExtensions
- ConcatExtensions
- ConnectableStreamExtensions
- DebounceExtensions
- DefaultIfEmptyExtension
- DelayExtension
- DelayWhenExtension
- DematerializeExtension
- DistinctUniqueExtension
- DoExtensions
- EndWithExtension
- EndWithManyExtension
- ExhaustMapExtension
- FlatMapExtension
- GroupByExtension
- IgnoreElementsExtension
- IntervalExtension
- MapNotNullExtension
- MapToExtension
- MaterializeExtension
- MaxExtension
- MergeExtension
- MinExtension
- OnErrorExtensions
- PairwiseExtension
- SampleExtensions
- ScanExtension
- SkipLastExtension
- SkipUntilExtension
- StartWithExtension
- StartWithManyExtension
- SwitchIfEmptyExtension
- SwitchMapExtension
- TakeLastExtension
- TakeUntilExtension
- TakeWhileInclusiveExtension
- ThrottleExtensions
- TimeIntervalExtension
- TimeStampExtension
- WhereNotNullExtension
- WhereTypeExtension
- WindowExtensions
- WithLatestFromExtensions
- ZipWithExtension
Constructors
- PublishSubject({void onListen()?, void onCancel()?, bool sync = false})
-
Constructs a PublishSubject, optionally pass handlers for
onListen
,onCancel
and a flag to handle eventssync
.factory
Properties
- done → Future
-
A future which is completed when the stream controller is done
sending events.
no setterinherited
-
first
→ Future<
T> -
The first element of this stream.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListener → bool
-
Whether there is a subscriber on the Stream.
no setterinherited
- isBroadcast → bool
-
Whether this stream is a broadcast stream.
no setterinherited
- isClosed → bool
-
Whether the stream controller is closed for adding more events.
no setterinherited
-
isEmpty
→ Future<
bool> -
Whether this stream contains any elements.
no setterinherited
- isPaused → bool
-
Whether the subscription would need to buffer events.
no setterinherited
-
last
→ Future<
T> -
The last element of this stream.
no setterinherited
-
length
→ Future<
int> -
The number of elements in this stream.
no setterinherited
- onCancel ↔ ControllerCancelCallback?
-
The callback which is called when the stream is canceled.
getter/setter pairinherited
- onListen ↔ ControllerCallback?
-
The callback which is called when the stream is listened to.
getter/setter pairinherited
- onPause ↔ ControllerCallback
-
The callback which is called when the stream is paused.
getter/setter pairinherited
- onResume ↔ ControllerCallback
-
The callback which is called when the stream is resumed.
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
single
→ Future<
T> -
The single element of this stream.
no setterinherited
-
sink
→ StreamSink<
T> -
Returns a view of this object that only exposes the StreamSink interface.
no setterinherited
-
stream
→ Stream<
T> -
The stream that this controller is controlling.
no setterinherited
Methods
-
add(
T event) → void -
Sends a data
event
.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Sends or enqueues an error event.
inherited
-
addStream(
Stream< T> source, {bool? cancelOnError}) → Future<void> -
Receives events from
source
and puts them into this controller's stream.inherited -
any(
bool test(T element)) → Future< bool> -
Checks whether
test
accepts any element provided by this stream.inherited -
asBroadcastStream(
{void onListen(StreamSubscription< T> subscription)?, void onCancel(StreamSubscription<T> subscription)?}) → Stream<T> -
Returns a multi-subscription stream that produces the same events as this.
inherited
-
asyncExpand<
E> (Stream< E> ? convert(T event)) → Stream<E> -
Transforms each element into a sequence of asynchronous events.
inherited
-
asyncMap<
E> (FutureOr< E> convert(T event)) → Stream<E> -
Creates a new stream with each data event of this stream asynchronously
mapped to a new event.
inherited
-
cast<
R> () → Stream< R> -
Adapt this stream to be a
Stream<R>
.inherited -
close(
) → Future -
Closes the stream.
inherited
-
contains(
Object? needle) → Future< bool> -
Returns whether
needle
occurs in the elements provided by this stream.inherited -
distinct(
[bool equals(T previous, T next)?]) → Stream< T> -
Skips data events if they are equal to the previous data event.
inherited
-
drain<
E> ([E? futureValue]) → Future< E> -
Discards all data on this stream, but signals when it is done or an error
occurred.
inherited
-
elementAt(
int index) → Future< T> -
Returns the value of the
index
th data event of this stream.inherited -
every(
bool test(T element)) → Future< bool> -
Checks whether
test
accepts all elements provided by this stream.inherited -
expand<
S> (Iterable< S> convert(T element)) → Stream<S> -
Transforms each element of this stream into a sequence of elements.
inherited
-
firstWhere(
bool test(T element), {T orElse()?}) → Future< T> -
Finds the first element of this stream matching
test
.inherited -
fold<
S> (S initialValue, S combine(S previous, T element)) → Future< S> -
Combines a sequence of values by repeatedly applying
combine
.inherited -
forEach(
void action(T element)) → Future< void> -
Executes
action
on each element of this stream.inherited -
handleError(
Function onError, {bool test(dynamic error)?}) → Stream< T> -
Creates a wrapper Stream that intercepts some errors from this stream.
inherited
-
join(
[String separator = ""]) → Future< String> -
Combines the string representation of elements into a single string.
inherited
-
lastWhere(
bool test(T element), {T orElse()?}) → Future< T> -
Finds the last element in this stream matching
test
.inherited -
listen(
void onData(T value)?, {Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription< T> -
Adds a subscription to this stream.
inherited
-
map<
S> (S convert(T event)) → Stream< S> -
Transforms each element of this stream into a new stream event.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onAdd(
T event) → void -
An extension point for sub-classes. Perform any side-effect / state
management you need to here, rather than overriding the
add
method directly.inherited -
onAddError(
Object error, [StackTrace? stackTrace]) → void -
An extension point for sub-classes. Perform any side-effect / state
management you need to here, rather than overriding the
add
method directly.inherited -
pipe(
StreamConsumer< T> streamConsumer) → Future -
Pipes the events of this stream into
streamConsumer
.inherited -
reduce(
T combine(T previous, T element)) → Future< T> -
Combines a sequence of values by repeatedly applying
combine
.inherited -
singleWhere(
bool test(T element), {T orElse()?}) → Future< T> -
Finds the single element in this stream matching
test
.inherited -
skip(
int count) → Stream< T> -
Skips the first
count
data events from this stream.inherited -
skipWhile(
bool test(T element)) → Stream< T> -
Skip data events from this stream while they are matched by
test
.inherited -
take(
int count) → Stream< T> -
Provides at most the first
count
data events of this stream.inherited -
takeWhile(
bool test(T element)) → Stream< T> -
Forwards data events while
test
is successful.inherited -
timeout(
Duration timeLimit, {void onTimeout(EventSink< T> sink)?}) → Stream<T> -
Creates a new stream with the same events as this stream.
inherited
-
toList(
) → Future< List< T> > -
Collects all elements of this stream in a List.
inherited
-
toSet(
) → Future< Set< T> > -
Collects the data of this stream in a Set.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
transform<
S> (StreamTransformer< T, S> streamTransformer) → Stream<S> -
Applies
streamTransformer
to this stream.inherited -
where(
bool test(T event)) → Stream< T> -
Creates a new stream from this stream that discards some elements.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited