21.Dart异步Future简单使用
2020-06-07 本文已影响0人
凯司机
import 'dart:io';
main(List<String> args) {
// sleep是阻塞式的耗时操作
print("开始");
var futurn = getNetworkData();
print(futurn);
print("结束");
futurn.then((String string){
print(string);
}).catchError((error){
print(error);
print('执行错误请求${error}++++++++++++');
}).whenComplete((){
print("全部执行结束...");
});
}
// 模拟一个网络请求
// Future不会阻塞主线程
Future<String> getNetworkData() {
return Future((){
sleep(Duration(seconds: 5));
print('KSJKSL1');
// throw Exception(
// "我是错误信息"
// );
return "KSJKSL2";
});
}
/**
* 1.将耗时的操作包裹到Future的回调函数中
* 2.只要有返回结果,那么就执行Future对应的then的回调
* 3.如果没有结果返回或者返回结果是错误的,需要返回一个异常
*/