我正在这样使用FutureBuilder
-
FutureBuilder(
future: _future,
builder: (BuildContext context, AsyncSnapshot snapshot) {
return snapshot.connectionState != ConnectionState.done
? CircularProgressIndicator()
: Text('Done');
},
),
在initState
中,我打电话给_future = getData();
getData
调用两个异步函数,仅在连接状态完成后才被调用。在执行两个功能之前,我应该进行哪些检查以确保显示进度指示器?
答案 0 :(得分:1)
假设异步函数的执行顺序并不重要,您可以执行以下操作:
initState(){
_future = Future.wait( [yourAsyncFunc1(), yourAsyncFunc2()] );
}
在这种情况下,yourAsyncFunc1()
和yourAsyncFunc2()
是您在async
函数内部调用的getData
函数。 Future.wait(..., ...)
调用会立即返回一个将来的对象,但是只有在完成yourAsyncFunc1
和yourAsyncFunc2
执行之后,此将来才完成。因此,您可以将FutureBuilder小部件与_future
属性中的future
一起使用,并查看结果。
答案 1 :(得分:-1)
在等待时使用异步功能。
类似
Future<void> getData() async {
await future1Function();
await future2Function();
}