您可以将Future<String>转换为String吗?
每次启动应用程序时,它都应该从数据库中获取数据,将其存储在.csv文件中,读取.csv文件并更新一些字符串变量。我希望我的应用程序可以离线运行。

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

String string;
Future<String> = futureString;

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

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

最佳答案

您只需要await作为值:

string = await futureString;

由于value是Future<String>,因此 await关键字将等到任务完成并返回值,而不移至下一条语句

请注意,要使用await,您必须将方法async设置为ronous yourMethod() async {}
或使用then回调:
futureString.then((value) {
  string = value;
});

两者都在做相同的事情,但是当您使用回调时,不需要使方法异步,但是异步将提高可读性(根据情况使用一种方法)。

10-08 03:23