1. Future.delayed(Duration(seconds : 3), (){
    2. _show("起始日期不能大于结束日期!");
    3. } );
    4. 创建一个立刻在事件队列里运行的Future:
    5. Future(() => print('立刻在Event queue中运行的Future'));
    6. 创建一个延时1秒在事件队列里运行的Future:
    7. Future.delayed(const Duration(seconds:1), () => print('1秒后在Event queue中运行的Future'));
    8. 创建一个在微任务队列里运行的Future:
    9. Future.microtask(() => print('在Microtask queue里运行的Future'));
    10. 创建一个同步运行的Future
    11. Future.sync(() => print('同步运行的Future'));
    1. Future<void> _getData() async {
    2. // Map<String, dynamic> res = null;
    3. var result = client.getBanben();
    4. result.then((value){
    5. _newVersion = value.data['versionShort']; // 赋值网络请求的版本号。
    6. _installUrl = value.data['installUrl']; // 赋值网络请请的下载apk地址。
    7. final data = _newVersion.split('.');
    8. _upgradeNewVersion = data.join('');
    9. // print(_notVersion + ' == ' + _upgradeNotVersion);
    10. // print(_newVersion + " == " + _upgradeNewVersion);
    11. // 判断当前网络请求的版本号是否大于当前版本号
    12. if( int.parse(_upgradeNotVersion) < int.parse( _upgradeNewVersion ) ){
    13. // 判断需要更新,则去请求更新接口,获取接口api,获取更新内容。
    14. // 创建 一个同步执行的 Future
    15. // 上面说到本来想判断更新,然后请求更新接口的,发现行不通。则更新接口需要写死在里面。getBanben()
    16. // 如需请求更新接口,则需改写上面的方法。
    17. Future.sync((){
    18. client.getBanbenData().then((value){
    19. Map<String,dynamic> res = json.decode(value.toString());
    20. setState(() {
    21. showData['title'] = res['title'];
    22. showData['data'] = res['data'].split(' ');
    23. });
    24. _show();
    25. });
    26. }) ;
    27. }
    28. });
    29. }