listenable_stream 1.1.0 listenable_stream: ^1.1.0 copied to clipboard
Convert Listenable (eg. ChangeNotifier), ValueListenable(eg. ValueNotifier) to Stream / ValueStream.
listenable_stream #
- Convert Flutter's
Listenable
(eg.ChangeNotifier
) toStream
. - Convert Flutter's
ValueListenable
(eg.ValueNotifier
) toValueStream
(incl. replay and not replay).
- ✅
Listenable
▶Stream<Listenable>
- ✅
ValueListenable<T>
▶ValueStream<T>
Usage #
Listenable.toStream() #
final ChangeNotifier changeNotifier = ChangeNotifier();
final Stream<ChangeNotifier> stream = changeNotifier.toStream();
stream.listen(print); // prints Instance of 'ChangeNotifier', Instance of 'ChangeNotifier'
changeNotifier.notifyListeners();
changeNotifier.notifyListeners();
ValueListenable.toValueStream() #
final ValueNotifier<int> valueNotifier = ValueNotifier(0);
final ValueListenableStream<int> stream = valueNotifier.toValueStream();
stream.listen(print); // prints 1, 2
valueNotifier.value = 1;
valueNotifier.value = 2;
print(stream.value); // prints 2
ValueListenable.toValueStream(replayValue: true) #
final ValueNotifier<int> valueNotifier = ValueNotifier(0);
final ValueListenableStream<int> stream = valueNotifier.toValueStream(replayValue: true);
stream.listen(print); // prints 0, 1, 2
valueNotifier.value = 1;
valueNotifier.value = 2;
print(stream.value); // prints 2
Note #
- All returned Stream is single-subscription
Stream
(ie. it can only be listened once) and does not emits any errors. ValueListenableStream
always has value (ie. has no error).