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

问题描述 投票:0回答:3

您可以将

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

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

String string;
Future<String> = futureString;

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

希望你们能看到照片并帮助我!谢谢!

string flutter dart future
3个回答
4
投票

您只需

await
即可获得价值:

string = await futureString;

由于值为

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

请注意,要使用

await
,您必须制定自己的方法
async
ronous
yourMethod() async {}

或者使用

then
回调:

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

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


3
投票

首先你需要学习 Dart 语言中的异步编程

这里有一个示例,可以帮助您了解

Future
在 Dart 中的工作原理。

void main() async {
  Future<String> futureString = Future.value('Data from DB');
  
  print(futureString); // output: Instance of '_Future<String>'
  print(await futureString); // output: Data from DB
  
  if (await futureString == null) {
    print('No data');
  }
}

0
投票

同样的问题已经解决了,如下所示: 串串; 未来 futureString;

string = futureString.get();

© www.soinside.com 2019 - 2024. All rights reserved.