如何在颤动中等待常规(非异步)代码(功能)?

问题描述 投票:0回答:1

我想在本地的大文本文件中搜索单词(不调用任何HTTP或API)。我将它与FutureBuilder一起使用,因为only文本文件的打开是异步的(其余不是)但开放本身非常快。我想在搜索时呈现CircularProgressIndicator,但似乎在完成文件[[<< [opening的那一刻,CircularProgressIndicator stops时,对于较长的搜索时间,我有一个空白屏幕。

在进行regular for循环时,我还能怎么做以显示加载屏幕?

我所拥有的类似于此伪代码:

Future<Array> searchData() async{ results = []; someBigTextFile= await getTextFile(); for(row in someBigTextFile){ // this loop takes a lot of time if(row contains this.query) results.add(row); } return results; } Widget buildResults(BuildContext context) { return FutureBuilder( future: searchData(), builder: (BuildContext context, AsyncSnapshot<Array> snapshot){ if (snapshot.connectionState != ConnectionState.done) { print("not done yet"); return CircularProgressIndicator(); } else { return snapshot.data; } } }
flutter async-await full-text-search processing loading
1个回答
0
投票
Future<Array> searchData() async{ results = []; await getTextFile().then((someBigTextFile){ for(row in someBigTextFile){ // this loop takes a lot of time if(row contains this.query) results.add(row); } return results; }); }
© www.soinside.com 2019 - 2024. All rights reserved.