我有这个函数,想同步调用它,因为如果我异步调用它,那么我应该使用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;
}
最佳答案
readContentAsText()
返回一个Future
,您不能同步调用它,因为它是一个I / O请求,这意味着需要一定时间才能完成该请求,这就是为什么它被异步调用的原因。
关于asynchronous - 在Dart中以同步方式调用异步功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60360215/