Flutter Stream 简介及部分操作符使用
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。
评论已关闭