Метод asBroadcastStream
Stream<T> asBroadcastStream(Возвращает многоподписной поток, который генерирует те же события, что и этот.
Возвращаемый поток подпишется на этот поток, когда будет добавлен первый подписчик, и останется подписанным до тех пор, пока этот поток не завершится или подписка не будет отменена вызовом обратного вызова.
Если onListen указано, оно вызывается с объектом, подобным подписке, который представляет базовую подписку на этот поток. Можно приостановить, продолжить или отменить подписку во время вызова onListen. Невозможно изменить обработчики событий, включая использование StreamSubscription.asFuture.
Если onCancel указано, оно вызывается аналогичным образом onListen когда возвращаемый поток перестает иметь слушателей. Если позже он получает нового слушателя, функция onListen вызывается снова.
Используйте обратные вызовы, например, для приостановки базовой подписки при отсутствии подписчиков, чтобы предотвратить потерю событий, или для отмены подписки, когда нет слушателей.
Исходный код
Stream<T> asBroadcastStream(
{void onListen(StreamSubscription<T> subscription),
void onCancel(StreamSubscription<T> subscription)}) =>
_stream.asBroadcastStream(onListen: onListen, onCancel: onCancel);
© 2012 the Dart project authors
Licensed under the Creative Commons Attribution-ShareAlike License v4.0.
https://api.dartlang.org/stable/1.24.3/dart-async/StreamView/asBroadcastStream.html