cached_streamable 1.1.0
cached_streamable: ^1.1.0 copied to clipboard
Simple interface for creating a streamable data source that caches it latest value.
cached_streamable #
Simple interface for creating a streamable data source that caches it latest value.
Think of it as an "extended" StreamController.
Usage #
Create your implementation by extending CachedStreamable.
Use the cache getter and setter to update the value.
You can use any single data type. This example uses int.
(cache getter is where you can access the latest data.
cache setter is where you can update the cache and notify listeners.)
class CounterRepository extends CachedStreamable<int> {
CounterRepository() : super(0);
// Some arbitrary future that updates the internal cache
Future<void> increment() =>
Future<void>.delayed(Duration.zero, () => cache = cache + 1);
}
- Use the
streamto access all the updates to the cache.
Future<void> main() async {
// prints "0" when first listened to
final repo = CounterRepository()..stream.listen(print);
// prints "1"
await repo.increment();
}
- Don't forget to call
closewhen you are done.
await repo.close();