一、前言
最近在做Flutter网络这块,涉及到耗时操作,显然要用异步编程。在其他语言,比如java、c++等,会使用多线程来实现。而在Dart语言中,它是单线程+事件循环的设计模式,其中主要使用Future来实现异步操作,为了快速的了解Flutter的异步编程,需要熟练Futter的概念以及用法。
二、Future是什么
同步编程中,立即返回执行的结果或者抛出异常;而异步编程中,返回的是将要完成的结果未来。Future代表异步执行的未来。
var future = Future
上述代码在执行过程中,future是Future的一个实例,有两种状态,完成或者未完成。当调用异步方法的时候,返回的一个未完成的future对象,该对象等待方法中相关操作执行完成或者抛出异常。
void main() {
print('start......');
var future = getNetworkData();
print(future);
print('do other......');
}
Future<String> getNetworkData() {
return Future(() {
//执行其他耗时操作
int result = 0;
for (int i = 0; i < 100000; i++) {
result += i;
}
return "result:$result";
});
}
打印结果: