【问题标题】: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 不是异步的。 如何等待获取此字符串并显示它?

【问题讨论】:

    标签: android flutter dart


    【解决方案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

    这很好解释我认为应该帮助你

    【讨论】:

    • 谢谢你,你能给我一些关于我能做什么的代码上下文吗?
    猜你喜欢
    • 2022-07-11
    • 2020-12-20
    • 2020-09-18
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2019-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多