setStream method

void setStream([
  1. Stream<T>? stream
])

Invokes the stored StreamCallback, or alternatively can accept a new Stream object.

Implementation

void setStream([Stream<T>? stream]) {
  clear();
  stream ??= streamCallback?.call();
  if (stream == null) return;

  _subscription = stream.listen(
    (T data) => value = AsyncSnapshot.withData(ConnectionState.active, data),
    onError: (Object error, StackTrace stackTrace) {
      value = AsyncSnapshot.withError(
        cancelOnError ? ConnectionState.done : ConnectionState.active,
        error,
        stackTrace,
      );
    },
    cancelOnError: cancelOnError,
    onDone: () {
      value = value.inState(ConnectionState.done);
    },
  );
}