Метод asBroadcastStream
Stream<T> asBroadcastStream(Возвращает поток с множественными подписками, который генерирует те же события, что и этот.
Возвращаемый поток подпишется на этот поток, когда к нему будет добавлен первый подписчик, и останется подписанным до тех пор, пока этот поток не завершится или callback не отменит подписку.
Если onListen предоставлен, он вызывается с объектом, подобным подписке, представляющим базовую подписку на этот поток. Можно приостановить, возобновить или отменить подписку во время вызова onListen. Изменять обработчики событий, включая использование StreamSubscription.asFuture, нельзя.
Если onCancel предоставлен, он вызывается аналогично onListen, когда возвращаемый поток перестает иметь слушателей. Если позже он получает нового слушателя, функция onListen вызывается снова.
Используйте колбэки, например, для приостановки базовой подписки, когда нет подписчиков, чтобы предотвратить потерю событий, или для отмены подписки, когда нет слушателей.
Исходный код
Stream<T> asBroadcastStream(
{void onListen(StreamSubscription<T> subscription),
void onCancel(StreamSubscription<T> subscription)}) {
return new _AsBroadcastStream<T>(this, onListen, 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/Stream/asBroadcastStream.html