如何在颤振中缠绕异步功能和同步功能

时间:2020-06-01 13:05:40

标签: android flutter dart

我是扑扑的初学者,我不太了解如何在扑扑中使用Async函数。 例如,

Future <String> readData() async {
  final file = await localFile;
  String body = await file.readAsString();
  return body;
}

因此在这段代码中,我从本地文件中检索了一些数据。但是我想在应用程序的开头运行此功能,并希望显示结果。

不幸的是,我在main.dart中的构建函数是一个同步函数,当我这样做时:

child : Text(readData());

由于返回Future,因此它不起作用。我也不能使用await关键字,因为它的Build不是异步的。 我该如何等待获取此字符串并显示它?

2 个答案:

答案 0 :(得分:1)

您可以尝试使用 FutureBuilder

  child: FutureBuilder<String>(
      builder: (context, data) {
        return Text(data.hasData ? data.data : '');
      },
      future: readData(),
  ),

答案 1 :(得分:0)

Dart Streams - Flutter in Focus

这很好地解释了,我认为应该可以帮助您