ComputedImpl<T> class

Implementation of Computed that automatically updates when its dependencies change.

This is the concrete implementation of the Computed interface. Computed values are derived from other reactive values and are recalculated only when their dependencies change. They are cached and only recompute when necessary, making them efficient for expensive calculations.

See Computed for the public interface and usage examples.

Example:

final firstName = Signal('John');
final lastName = Signal('Doe');
final fullName = Computed(() => '${firstName.value} ${lastName.value}');

print(fullName.value); // "John Doe"
firstName.value = 'Jane';
print(fullName.value); // "Jane Doe" - automatically updated
Inheritance
Implemented types
Mixed-in types
Implementers
Available extensions

Constructors

ComputedImpl(T getter(), {JoltDebugFn? onDebug})
Creates a new computed value with the given getter function.
ComputedImpl.withPrevious(T getter(T?), {JoltDebugFn? onDebug})
Creates a computed value with a getter that receives the previous value.
factory

Properties

deps Link?
First dependency link in the chain.
getter/setter pairinherited
depsTail Link?
Last dependency link in the chain.
getter/setter pairinherited
flags int
Reactive flags for this node.
getter/setter pairinherited
getter → T Function()
finalinherited
hashCode int
The hash code for this object.
no setterinherited
isDisposed bool
Whether this node has been disposed.
no setterinherited
peek → T
Returns the current computed value without establishing a reactive dependency.
no setteroverride
peekCached → T
Returns the cached computed value without establishing a reactive dependency.
no setteroverride
pendingValue ↔ T?
getter/setter pairinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
stream Stream<T>

Available on Readable<T>, provided by the JoltUtilsStreamExtension extension

Converts this reactive value to a broadcast stream.
no setter
subs Link?
First subscriber link in the chain.
getter/setter pairinherited
subsTail Link?
Last subscriber link in the chain.
getter/setter pairinherited
value → T
Returns the current computed value and establishes a reactive dependency.
no setteroverride

Methods

call() → T

Available on Readable<T>, provided by the JoltUtilsReadableExtension extension

Gets the current value (callable syntax).
derived<U>(U computed(T value)) Computed<U>

Available on Readable<T>, provided by the JoltUtilsReadableExtension extension

Creates a computed value derived from this readable.
dispose() → void
Disposes this node and cleans up resources.
inherited
get() → T

Available on Readable<T>, provided by the JoltUtilsReadableExtension extension

Gets the current value.
listen(void onData(T event)?, {Function? onError, void onDone()?, bool? cancelOnError, bool immediately = false}) StreamSubscription<T>

Available on Readable<T>, provided by the JoltUtilsStreamExtension extension

Listens to changes in this reactive value.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notify() → void
Manually notifies all subscribers that this computed value has changed.
override
onDispose() → void
Disposes the computed value and cleans up resources.
override
toString() String
A string representation of this object.
override
until(bool predicate(T value)) Future<T>

Available on ReadableNode<T>, provided by the JoltUtilsUntilExtension extension

Waits until the value satisfies a condition.
untilWhen<U>(U predicate) Future<T>

Available on ReadableNode<T>, provided by the JoltUtilsUntilExtension extension

Waits until the reactive value equals a specific value.

Operators

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