zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

flutter异步

2023-09-14 09:04:28 时间

参考
参考

getData() async {    //async关键字声明该函数内部有代码需要延迟执行
	return await http.get(Uri.encodeFull(url), headers: {"Accept": "application/json"}); //await关键字声明运算为延迟执行,然后return运算结果
}

如果需要调用getData方法,要为这个给data赋值的语句加一个async函数的包装:

String data;
setData() async {
	data = await getData();    //getData()延迟执行后赋值给data
}

await关键字必须在async函数内部使用
调用async函数必须使用await关键字
Future.value():返回一个指定值的Future

例子
列表的缓存一般是放在本地数据库中

  Future<String?> _getConfigData() async {//Future<String?>可以省略的
    print('getVipHead=====_getConfigData====');
    if (!DatabaseUtil.isDatabaseReady) {
      DatabaseUtil.initDatabase();
    }
    var data = await DatabaseUtil.queryHttp(//从数据库里面查询数据,使用异步操作,async和await
        DatabaseUtil.database!,
        NetUtils.getCacheKeyFromPath(
            Api.BUSINESS_BASE_API + Api.API_GETCONFIG, {}));
    // print('getVipHead=====_getConfigData====${json.decoder.convert(data.first['value'])}');
    return json.decoder.convert(data.first['value']);
  }