如何在颤动中交织异步函数和同步函数
Posted
技术标签:
【中文标题】如何在颤动中交织异步函数和同步函数【英文标题】:How to intertwine Async functions and sync functions in flutter 【发布时间】:2020-09-19 19:04:50 【问题描述】:我是 Flutter 的初学者,不太了解如何在 Flutter 中使用 Async 函数。 例如,
Future <String> readData() async
final file = await localFile;
String body = await file.readAsString();
return body;
所以在这段代码中,我从本地文件中检索了一些数据。但我想在应用程序启动时运行这个函数并想显示结果。
不幸的是,我在 main.dart 中的构建函数是同步的,当我这样做时:
child : Text(readData());
它不起作用,因为它返回一个 Future 。我也不能使用 await 关键字,因为它 Build 不是异步的。 如何等待获取此字符串并显示它?
【问题讨论】:
【参考方案1】:您可以尝试使用 FutureBuilder
child: FutureBuilder<String>(
builder: (context, data)
return Text(data.hasData ? data.data : '');
,
future: readData(),
),
【讨论】:
你也可以在 StatefullWidget 和 setState 中使用一个变量,当 file.readAsString() 完成时。【参考方案2】:Dart Streams - Flutter in Focus
这很好解释我认为应该帮助你
【讨论】:
谢谢你,你能给我一些关于我能做什么的代码上下文吗?以上是关于如何在颤动中交织异步函数和同步函数的主要内容,如果未能解决你的问题,请参考以下文章