在Dart中以同步方式调用异步功能

时间:2020-02-23 07:58:33

标签: asynchronous flutter dart async-await

我有这个功能,想同步调用它,因为如果我异步调用它,那么我应该使用FutureBuilder,我不喜欢它,因为如果用户滚动太快,它会产生额外的闪烁:

Future<String> getRealHTML(int chapter) async {
    var key = _Html.keys.toList()[chapter];
    var val = _Html.values.toList()[chapter];
    if (val.Content.startsWith("filename:")) {
      EpubContentFileRef value = contentRefHtml[key];
      return await value.readContentAsText();
    }
    return null;
  }

1 个答案:

答案 0 :(得分:1)

List返回一个readContentAsText(),您不能同步调用它,因为它是一个I / O请求,这意味着需要花费一些时间来完成请求,这就是为什么它被异步调用的原因。

>