首页 > 解决方案 > 你能转换未来吗到一个字符串?颤振/飞镖

问题描述

你能把 a 转换成Future<String>aString吗?每次我启动我的应用程序时,它都应该从数据库中获取数据,将其存储在 .csv 文件中,读取 .csv 文件并更新一些字符串变量。我希望我的应用程序脱机运行。

我正在寻找这样的解决方案:

String string;
Future<String> = futureString;

if (futureString == null) {
  string = '{standard value}'; 
} else {
  string = futureString;
}

我希望你们能得到图片并帮助我!谢谢!

标签: stringflutterdartfuture

解决方案


您只需要await获取价值:

string = await futureString;

由于 value 是Future<String>awaitkeyword 将等到任务完成并返回 value 而不会移动到下一条语句

请注意,要使用await您必须使您的方法async具有讽刺意味yourMethod() async {}

或使用then回调:

futureString.then((value) {
  string = value;
});

两者都在做同样的事情,但是当您使用回调时,您不需要使您的方法异步,但异步将提高可读性(使用一个取决于场景)。


推荐阅读