代码之家  ›  专栏  ›  技术社区  ›  Fractale

什么时候在Flutter中使用Stream,与Futur循环相比有什么优势?

  •  0
  • Fractale  · 技术社区  · 2 年前

    我有一个函数,它采用文件夹路径,并为找到的每个文件生成一个图像。 这一代需要一段时间,而且确实是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);
          });
        }
      }
    
    0 回复  |  直到 2 年前