AsyncCache<
    Runs asynchronous functions and caches the result for a period of time.
This class exists to cover the pattern of having potentially expensive code such as file I/O, network access, or isolate computation that's unlikely to change quickly run fewer times. For example:
final _usersCache = new AsyncCache<List<String>>(const Duration(hours: 1));
/// Uses the cache if it exists, otherwise calls the closure:
Future<List<String>> get onlineUsers => _usersCache.fetch(() {
  // Actually fetch online users here.
});
This class's timing can be mocked using fake_async.
Constructors
- AsyncCache(Duration _duration)
- 
          Creates a cache that invalidates its contents after durationhas passed. [...]
- AsyncCache.ephemeral()
- 
          Creates a cache that invalidates after an in-flight request is complete. [...]
          factory
Properties
- hashCode → int
- 
          The hash code for this object. [...]
          read-only, inherited
- runtimeType → Type
- 
          A representation of the runtime type of the object.
          read-only, inherited
Methods
- 
          fetch(Future< T> callback()) → Future< T> 
- 
          Returns a cached value from a previous call to fetch, or runs callbackto compute a new one. [...]
- 
          fetchStream(Stream< T> callback()) → Stream< T> 
- 
          Returns a cached stream from a previous call to fetchStream, or runs
callbackto compute a new stream. [...]
- 
          invalidate() → void 
- Removes any cached value.
- 
          noSuchMethod(Invocation invocation) → dynamic 
- 
          Invoked when a non-existent method or property is accessed. [...]
          inherited
- 
          toString() → String 
- 
          Returns a string representation of this object.
          inherited
Operators
- 
          operator ==(dynamic other) → bool 
- 
          The equality operator. [...]
          inherited