Вызов функции asyn c в формате syn c в Dart - PullRequest
0 голосов
/ 23 февраля 2020

У меня есть эта функция, я хочу вызвать ее синхронно, потому что, если я вызываю ее asyn c, тогда я должен использовать 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 Ответ

1 голос
/ 23 февраля 2020

readContentAsText() возвращает Future, вы не можете вызвать его синхронно, так как это запрос ввода-вывода, что означает, что потребуется время для завершения sh запроса, поэтому он вызывается асинхронно.

...