我有一个函数,它采用文件夹路径,并为找到的每个文件生成一个图像。
这一代需要一段时间,而且确实是CPU密集型的。
我是Flutter的新手,我习惯使用Futur,但不使用Stream。
我想知道在我的情况下,使用Stream比只使用SetState有什么优势。
据我所知,Stream听起来非常适合我的用例,但我认为当我查看我生成的代码时,我没有抓住要点。
这是代码:
Future<void> _foo(Directory dir) async {
List<File> files = _findFiles(dir);
for (File file in files) {
Widget image = await _computeImage(file);
_imageStreamController.add(image);
}
}
void _bar() {
_imageStreamController.stream.listen((event) {
setState(() {
_imagesList.add(event);
});
});
}
或
Future<void> _foo(Directory dir) async {
List<File> files = _findFiles(dir);
for (File file in files) {
Widget image = await _computeImage(file);
setState(() {
_imagesList.add(event);
});
}
}