Flutter和Dart都是异步的。使用Dart的Futures可以轻松地管理IO而不用担心线程问题或死锁问题。
在Flutter中当涉及到Future时,构建小部件可以使用FutureBuilder:
class FutureBuilderDemo extends StatelessWidget{
@override
Widget build(BuildContext context) {
final builder = FutureBuilder(
future: http.get('http://example.com'),
builder: (context,snapshot){
if(snapshot.connectionState==ConnectionState.done)
return AwesomeData(snapshot.data);
else return CircularProgressIndicator();
}
);
return builder;
}
}
其中shapshot的链接状态包括:
ConnectionState.none;
ConnectionState.waiting;
ConnectionState.active;
ConnectionState.done;