AsyncValueStream<T> class

The AsyncValueStream is used as a clearing house when more than one consumer need to update a single value, but you want to control the lifecycle around updates, so that older updates that take longer to calculate don't clobber newer values.

This allows for synchronous or asynchronous updates, but the last update to start will always "win", even if if finishes before another update that started before it.

Updates may be asynchronous, so they are queued up, and then processed in order. The current value is tracked as current

Implemented types
Mixed-in types
Available extensions

Constructors

AsyncValueStream({String? debugName, T? initialValue, bool isUnique = true, ClearingHouseMode mode = ClearingHouseMode.AllowSynchronousValues})

Properties

after Stream<T?>
no setteroverride
current → T?
no setter
debugName String
The debug name for this stream
final
future Future<T>
no setteroverride
hashCode int
The hash code for this object.
no setterinherited
isFirstResolved bool
no setteroverride
isNotEmpty bool

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

no setter
isUnique bool
final
keys ValueStream<Iterable<K>>

Available on ValueStream<Map<K, V>>, provided by the ValueStreamOfMapExtensions extension

no setter
length int

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

no setter
log → Logger
Our logger
final
mode ClearingHouseMode
How updates are locked.
final
nextUpdate Future<T>
Waits until the next update completes
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
values ValueStream<Iterable<V>>

Available on ValueStream<Map<K, V>>, provided by the ValueStreamOfMapExtensions extension

no setter

Methods

awaitEach() ValueStream<Future<Iterable<X>>>

Available on ValueStream<Iterable<Future<X>>>, provided by the ValueStreamIterableFutureExtensions extension

combined<R, O>(ValueStream<O> other, R combiner(T? self, O? other)) ValueStream<R>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

Combines another stream.
combinedUnresolved<R, O>(ValueStream<O> other, Resolvable<R?> combiner(FutureOr<T?> self, FutureOr<O?> other)) ValueStream<R?>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

Combines another stream, passing unresolved Futures
combineWith(Iterable<ValueStream<Iterable<X>>> others, [String? debugName]) ValueStream<Iterable<X>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

debounced([Duration? duration]) ValueStream<T>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

dispose() Future
disposeAll() Future
inherited
expandEach<R>(Iterable<R> expander(X input)) ValueStream<Iterable<R>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

filteredBy<R>(ValueStream<R> other, bool filter(X item, R? other)) ValueStream<Iterable<X>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

Filters this stream using a result of another stream. This allows us to apply the filter when either the filtering source changes or the original list changes.
filterEntries(bool predicate(K key, V value)) ValueStream<Map<K, V>>

Available on ValueStream<Map<K, V>>, provided by the ValueStreamOfMapExtensions extension

filterItems(bool predicate(X input)?) ValueStream<Iterable<X>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

flatten([T? initialValue, bool filterNotNull = true]) Stream<T?>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

followedBy(ValueStream<Iterable<X>> other) ValueStream<Iterable<X>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

get() FutureOr<T?>
override
listen(void onData(T item)) StreamSubscription

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

map<R>(R mapper(T? input)) ValueStream<R>
Basics of converting something over
override
mapEach<R>(R mapper(X input)) ValueStream<Iterable<R>>

Available on ValueStream<Iterable<X>>, provided by the ValueStreamIterableExtensions extension

mapEntries<R>(MapEntry<K, R> mapper(K key, V value)) ValueStream<Map<K, R>>

Available on ValueStream<Map<K, V>>, provided by the ValueStreamOfMapExtensions extension

mapValues<R>(R mapper(K key, V value)) ValueStream<Map<K, R>>

Available on ValueStream<Map<K, V>>, provided by the ValueStreamOfMapExtensions extension

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
peek(void peek(T item)) ValueStream<T>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

registerDisposer(Disposer callback) → void
inherited
registerStream(Stream? stream) → void
inherited
registerSubscription(StreamSubscription? subscription) → void
inherited
removeDisposer(FutureOr dispose()) → void
inherited
resolve([T? ifAbsent]) → T?
override
sampled() ValueStream<X?>

Available on ValueStream<Future<X>>, provided by the ValueStreamFutureExtensions extension

syncUpdate(T current) FutureOr<T>
When setting a value in this way, we can assume that this update is the latest, and should cancel out any other in-flight requests
thenMap<R>(R mapper(X input)) ValueStream<Future<R>>

Available on ValueStream<Future<X>>, provided by the ValueStreamFutureExtensions extension

thenMapEach<R>(R mapper(X input)) ValueStream<Iterable<Future<R>>>

Available on ValueStream<Iterable<Future<X>>>, provided by the ValueStreamIterableFutureExtensions extension

toMap() ValueStream<Map<K, V>>

Available on ValueStream<Iterable<MapEntry<K, V>>>, provided by the ValueStreamIterableMapEntryExtensions extension

toString() String
A string representation of this object.
inherited
toSyncStream([void onChange(T value)?, String? name]) SyncStream<T>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

update(Producer<T> current, {String? debugLabel, Duration? timeout, bool? fallbackToCurrent}) Future<T?>
where(Predicate<T?> predicate) ValueStream<T>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

Filters the entire stream, including the current element
whereNotNull() ValueStream<T>

Available on ValueStream<T>, provided by the ValueStreamExtensions extension

Operators

operator ==(Object other) bool
The equality operator.
inherited