asBroadcast method

StreamController<T> asBroadcast()

Converts this controller into a broadcast controller.

If the controller is already broadcast, it is returned as-is. Caution: Once switched to broadcast, it cannot be reverted.

Implementation

StreamController<T> asBroadcast() {
  if (stream.isBroadcast) return this;
  final broadcastController = StreamController<T>.broadcast();
  stream.listen(
    broadcastController.add,
    onError: broadcastController.addError,
    onDone: broadcastController.close,
  );
  return broadcastController;
}