看来在dart中使用Futures/async代码就像癌症一样,需要你用async关键字重写整个应用程序。我的应用程序本质上是同步的,我只是有一小部分需要下载一些东西。互联网上的每一个消息来源似乎都告诉我,如果不重写整个应用程序以使其同步或创建同步版本,就无法简单地从互联网上下载文件的http库...肯定不对吧?C#也有同样的问题,一个传染性的异步关键字,但你至少可以解决它...
作为一个例子,这里是我想要的代码,但异步:
Future<String> downloadTxtFile(String url) async {
return await http.read(Uri.parse(url));
}
如何同步地执行/调用这个函数?如果它返回一个Future,那么调用函数必须是异步的才能等待它。
1条答案
按热度按时间trnvg8h31#
要从Dart中的URL同步下载文件,可以使用http软件包。以下是如何使用此软件包下载文件的示例:
要使用这个函数,你可以调用它并传入你想要下载的文件的URL。这个函数将返回一个Future,它将以字符串的形式完成文件的内容。
请注意,此函数是异步的,这意味着它将返回一个Future,该Future在下载完成时完成。如果要同步下载文件,可以使用await关键字等待Future完成后再继续。