你能将未来<String>转换为字符串吗?颤振/飞镖



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

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

String string;
Future<String> = futureString;
if (futureString == null) {
string = '{standard value}'; 
} else {
string = futureString;
}

我希望你们能拍到这张照片,并能帮助我!谢谢

您只需要await即可获得值:

string = await futureString;

由于值为Future<String>await关键字将等待任务完成并返回该值,而不移动到下一个语句

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

或者使用then回调:

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

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

首先,您需要学习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');
}
}

相关内容

最新更新