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