import 'package:rxdart/rxdart.dart';
 
void main() {
  // 创建一个新的Stream Controller
  final StreamController<int> controller = StreamController<int>();
 
  // 将Stream转换为广播Stream,即任何监听者都会接收到以后的事件
  final stream = controller.stream.asBroadcastStream();
 
  // 订阅并监听stream上的事件
  stream.listen(print);
 
  // 向stream发送数据
  controller.add(1);
  controller.add(2);
 
  // 关闭stream,不再接受新的监听者
  controller.close();
 
  // 使用expand操作符将单个事件转换为多个事件
  final Stream<int> numbers = Stream.fromIterable([1, 2, 3]);
  final Stream<int> multiples = numbers.flatMap((i) => Stream.fromIterable(List.generate(i, (index) => index + 1)));
 
  multiples.listen(print);
}这段代码首先创建了一个新的Stream Controller,然后将其stream转换为广播stream,并订阅了该stream。之后向stream中发送了两个数据,并关闭了stream。接着,使用flatMap操作符将每个数字转换为一个新的stream,其中包含从1到该数字的所有整数的序列,并再次订阅这个新的stream。
