consumeAsListenable<T, S> method

ValueListenable<S?> consumeAsListenable<T, S>(
  1. ValueStream<T> observable,
  2. FutureOr<S?> f(
    1. T? value
    )
)

Implementation

ValueListenable<S?> consumeAsListenable<T, S>(
  ValueStream<T> observable,
  FutureOr<S?> Function(T? value) f,
) {
  final v = f(observable.valueOrNull);
  final notifier = ValueNotifier<S?>(v is Future<S> ? null : v as S);
  _subscriptions.add(
    observable.distinct().listen((x) async => notifier.value = await f(x)),
  );
  return notifier;
}