以下是一个示例代码,演示如何从Stream类获取数据而不使用StreamBuilder。
import 'dart:async';
void main() {
final stream = countStream(5);
stream.listen((data) {
print('Received data: $data');
});
}
Stream countStream(int max) async* {
for (int i = 1; i <= max; i++) {
await Future.delayed(Duration(seconds: 1));
yield i;
}
}
在这个示例中,我们定义了一个名为countStream
的函数,返回一个异步生成器(async*)的Stream。生成器使用yield
关键字将递增的数字发送到Stream中。我们可以使用await for
循环来监听Stream中的数据,但这里我们使用stream.listen
方法来订阅Stream并处理接收到的数据。
当运行这段代码时,我们会看到每隔一秒钟打印出一个数字,从1到5。