useStreamListener<T> function

void useStreamListener<T>(
  1. Stream<T> stream,
  2. ValueChanged<T> onData, {
  3. Function? onError,
  4. void onDone()?,
  5. bool? cancelOnError,
  6. List<Object?> keys = const [],
})

Listens to stream and calls onData on new data.

See also:

  • Stream.listen for information about onError, onDone, and cancelOnError.

Implementation

void useStreamListener<T>(
  Stream<T> stream,
  ValueChanged<T> onData, {
  Function? onError,
  void Function()? onDone,
  bool? cancelOnError,
  List<Object?> keys = const [],
}) {
  useEffect(
    () {
      final subscription = stream.listen(
        onData,
        onError: onError,
        onDone: onDone,
        cancelOnError: cancelOnError,
      );

      return subscription.cancel;
    },
    keys,
  );
}