AsyncMemoizer<T> class
A class for running an asynchronous function exactly once and caching its result.
An AsyncMemoizer
is used when some function may be run multiple times in
order to get its result, but it only actually needs to be run once for its
effect. To memoize the result of an async function, you can create a
memoizer outside the function (for example as an instance field if you want
to memoize the result of a method), and then wrap the function's body in a
call to runOnce.
This is useful for methods like close()
and getters that need to do
asynchronous work. For example:
class SomeResource {
final _closeMemo = AsyncMemoizer();
Future close() => _closeMemo.runOnce(() {
// ...
});
}
Constructors
Properties
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
runOnce(
FutureOr< T> computation()) → Future<T> -
Runs the function,
computation
, if it hasn't been run before. -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited