ActionV2<T> class
A command that can be dispatched and listened to.
An ActionV2 manages a collection of listeners and the manner of
their invocation. It does not rely on Stream for managing listeners. By
managing its own listeners, an ActionV2 can track a Future that completes
when all registered listeners have completed. This allows consumers to use
await
to wait for an action to finish processing.
var asyncListenerCompleted = false;
action.listen((_) async {
await new Future.delayed(new Duration(milliseconds: 100), () {
asyncListenerCompleted = true;
});
});
var future = action();
print(asyncListenerCompleted); // => 'false'
await future;
print(asyncListenerCompleted). // => 'true'
Providing a Future for listener completion makes actions far easier to use when a consumer needs to check state changes immediately after invoking an action.
- Implementers
Constructors
- ActionV2()
Properties
-
didDispose
→ Future<
Null> -
A Future that will complete when this object has been disposed.
no setterinherited
- disposableTypeName → String
-
A type name, similar to runtimeType but intended to work
with minified code.
no setter
- disposalTreeSize → int
-
The total size of the disposal tree rooted at the current Disposable
instance.
no setterinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isDisposed → bool
-
Whether this object has been disposed.
no setterinherited
- isLeakFlagSet → bool
-
Whether the leak flag for this object has been set.
no setterinherited
- isOrWillBeDisposed → bool
-
Whether the disposal of this object has been requested, is in progress, or
is complete.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
awaitBeforeDispose<
T> (Future< T> future) → Future<T> -
Add
future
to a list of futures that will be awaited before the object is disposed.inherited -
call(
T payload) → Future - Dispatch this ActionV2 to all listeners. The payload will be passed to each listener's callback.
-
clearListeners(
) → void - Cancel all subscriptions that exist on this ActionV2 as a result of listen being called. Useful when tearing down a flux cycle in some module or unit test.
-
dispose(
) → Future< Null> -
Dispose of the object, cleaning up to prevent memory leaks.
inherited
-
flagLeak(
[String? description]) → void -
Flag the object as having been disposed in a way that allows easier
profiling.
inherited
-
getManagedDelayedFuture<
T> (Duration duration, T callback()) → Future< T> -
Creates a Future that will complete, with the value
returned by
callback
, after the given amount of time has elapsed.inherited -
getManagedDisposer(
Disposer disposer) → ManagedDisposer -
Automatically handle arbitrary disposals using a callback.
inherited
-
getManagedPeriodicTimer(
Duration duration, void callback(Timer timer)) → Timer -
Creates a periodic Timer that will be cancelled if active
upon disposal.
inherited
-
getManagedTimer(
Duration duration, void callback()) → Timer -
Creates a Timer instance that will be cancelled if active
upon disposal.
inherited
-
listen(
dynamic onData(T event)) → ActionSubscription -
Supply a callback that will be called any time this ActionV2 is
dispatched. A payload of type
T
will be passed to the callback if supplied at dispatch time, otherwise null will be passed. Returns an ActionSubscription which provides means to cancel the subscription. -
listenToStream<
T> (Stream< T> stream, void onData(T event), {Function? onError, void onDone()?, bool? cancelOnError}) → StreamSubscription<T> -
Returns a StreamSubscription which handles events from the stream using
the provided
onData
,onError
andonDone
handlers.inherited -
manageAndReturnTypedDisposable<
T extends Disposable> (T disposable) → T -
Automatically dispose another object when this object is disposed.
inherited
-
manageCompleter<
T> (Completer< T> completer) → Completer<T> -
Ensure that a completer is completed when the object is disposed.
inherited
-
manageDisposable(
Disposable disposable) → void -
inherited
-
manageStreamController(
StreamController controller) → void -
Automatically cancel a stream controller when this object is disposed.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onDispose(
) → Future< Null> - Callback to allow arbitrary cleanup on dispose.
-
onWillDispose(
) → Future< Null> -
Callback to allow arbitrary cleanup as soon as disposal is requested (i.e.
dispose is called) but prior to disposal actually starting.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
Actions are only deemed equivalent if they are the exact same Object
override