BehaviorSubject<T>.seeded constructor

BehaviorSubject<T>.seeded(T seedValue, { void onListen(), void onCancel(), bool sync: false })

Constructs a BehaviorSubject, optionally pass handlers for onListen, onCancel and a flag to handle events sync.

seedValue becomes the current value and is emitted immediately.

See also StreamController.broadcast

Implementation

factory BehaviorSubject.seeded(
  T seedValue, {
  void onListen(),
  void onCancel(),
  bool sync = false,
}) {
  // ignore: close_sinks
  final controller = StreamController<T>.broadcast(
    onListen: onListen,
    onCancel: onCancel,
    sync: sync,
  );

  final wrapper = _Wrapper<T>.seeded(seedValue);

  return BehaviorSubject<T>._(
      controller,
      Observable<T>.defer(_deferStream(wrapper, controller), reusable: true),
      wrapper);
}