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