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 and onDone 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