Широковещательный поток имеет тот же API, что и не вещательный поток, поэтому ему не нужен отдельный класс.
Способ создания широковещательного потока состоит в том, чтобы либо иметь широковещательный поток и использовать на нем любые операции преобразования потока (например, myBroadcastStream.map(...)
), либо создать поток с нуля с помощью контроллера, var c = StreamController.broadcast(...);
.
Вы можете проверить, является ли поток вещательным потоком, используя myStream.isBroadcast
.
Вы можете видеть, что широковещательный поток - это скорее выбор поведения, стратегия, чем отдельный тип потока. Потоки могут вести себя по-разному, используя один и тот же API. В настоящее время у нас есть только два поведения, но было бы легко создать третье поведение, скажем, поток, который можно прослушивать более одного раза, но который не отправляет одни и те же события всем слушателям в одно и то же время (как итерация, которая можно использовать повторно).