flutter - 如何在映射列表中等待未来
问题描述
所以我使用 sqflite 进行颤振,从 MySql 中的数据库中获取数据,并使用 sqflite 将其存储在设备的本地存储中,为此我编写了以下代码:
Future<List<Lentille>> getAllLentilles() async {
Response response = await Dio().get(apiurl + "/Lentille");
return (jsonDecode(response.data.toString()) as List).map((lentille) {
DBProvider.db.createLentille(Lentille.fromJson(lentille));
}).toList();
}
事情在地图里面,DBProvider.db.createLentille(Lentille.fromJson(lentille))有一个await:
createLentille(Lentille newLentille) async {
await deleteAllLentilles();
final db = await database;
int value;
String number = await _storage.read(key: "number");
value = int.tryParse(number) + 1;
await _storage.write(key: "number", value: value.toString());
/****************************************************************** */
Directory documentDirectory = await getApplicationDocumentsDirectory();
File file =
File(join(documentDirectory.path, 'image' + value.toString() + '.png'));
if (await file.exists()) await file.delete();
await file.writeAsBytes(base64Decode(newLentille.image));
/****************************************************************** */
newLentille.image = "image" + value.toString();
print("Lentille :" + newLentille.image);
final res = await db.insert('Lentilles', newLentille.toJson());
await Future.delayed(Duration(seconds: 1));
return res;
}
我的问题是地图内的 createLentille() 不是异步的,它并行执行,我怎样才能使它在地图内异步?谢谢
解决方案
推荐阅读
- matlab - 旋转matlab颜色条刻度标签
- vb.net - 如何使用VB和itextsharp在标题页面后在固定点添加表格
- c - 我可以从另一个 strtok 中对令牌进行 strtok 吗?
- c - 使用 bsearch 在结构数组中查找元素
- github-actions - ##[错误]没有与特定模式匹配的文件:/appsettings.json
- flutter - 制作某种具有多行的行构建器并将 JSON 数据传递到其中的最佳方法是什么。扑
- javascript - 特定语言是的验证
- javascript - Jasmine 测试添加到窗口对象(TypeScript)上的数据/属性
- c++ - 嵌套在联合中的结构嵌套在C中的结构中
- android - 从 Fragment 返回时,Kotlin ViewModel onchange 被多次调用(使用生命周期实现)