你能将 Future<String> 转换为字符串吗?扑动/飞镖

Bra*_*unt 5 string future dart flutter

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

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

String string;
Future<String> = futureString;

if (futureString == null) {
  string = '{standard value}'; 
} else {
  string = futureString;
}
Run Code Online (Sandbox Code Playgroud)

希望大家能看到图片并帮助我!谢谢!

Bla*_*nka 3

你只需要await为价值:

string = await futureString;
Run Code Online (Sandbox Code Playgroud)

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

请注意,要使用await你必须使你的方法asyncronousyourMethod() async {}

或者使用then回调:

futureString.then((value) {
  string = value;
});
Run Code Online (Sandbox Code Playgroud)

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