- Convert Flutter's
Listenable(e.g.ChangeNotifier) toStream. - Convert Flutter's
ValueListenable(e.g.ValueNotifier) toValueStream(incl. "replay" and "not replay").
-
Listenable▶Stream<Listenable> -
ValueListenable<T>▶ValueStream<T>
final ChangeNotifier changeNotifier = ChangeNotifier();
final Stream<ChangeNotifier> stream = changeNotifier.toStream();
stream.listen(print); // prints Instance of 'ChangeNotifier', Instance of 'ChangeNotifier'
changeNotifier.notifyListeners();
changeNotifier.notifyListeners();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 2final 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- All returned Stream is single-subscription
Stream(ie. it can only be listened once) and does not emits any errors. ValueListenableStreamalways has value (ie. has no error).