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']);
}