小编San*_*ack的帖子

在Dart中使用Futures循环

好的,所以我有一个文件列表,我需要在列表的每个成员上运行一个函数.我基本上想做这样的事情:

for(File file in files) {
    functionThatReturnsAFuture(file);
}
Run Code Online (Sandbox Code Playgroud)

但显然这不起作用,因为返回Future的函数是异步激发的.这是我唯一的选择吗?

List<File> files = new List<File>();
// Add files somewhere

Future processFile(int i) {
   return new Future.sync(() {
       //Do stuff to the file
       if(files.length>i+1) {
           return processFile(i+1);
       }
   });
}

processFile(0);
Run Code Online (Sandbox Code Playgroud)

编辑:我想更多的背景是重要的.最终目标是将多个文件合并到一个JSON对象中,以便提交给服务器.FileReader对象使用事件来执行读取,因此我使用Completer创建了一个提供Future的包装函数.我可以让所有这些都异步运行,然后触发一个事件,当它们全部完成时提交它,但这相当多的设置与for-each-loop使它全部工作(如果存在,无论如何).核心问题是需要在文件列表上运行Future-returns函数,然后执行一个完全取决于它们的操作.

future dart

6
推荐指数
2
解决办法
4211
查看次数

适当的http状态码进行确认

我正在为要连接的几个不同客户端程序实现一个 API,我希望 API 能够发回“您确定要这样做吗?” 消息,例如尝试通过 api 删除某些内容时。查看已建立的 http 响应代码列表,我没有看到一个似乎很合适的代码。我总是可以跳过使用代码并提供一些其他方式来传达确认,但如果可能的话,我真的很想使用标准化的方法。

api 通常是通过客户端应用程序访问的,目前是一个由 JavaScript 驱动的应用程序,但我也做了它,以便可以通过网络浏览器 url 直接访问 api 来有效地使用它。

http httpresponse

5
推荐指数
1
解决办法
2477
查看次数

标签 统计

dart ×1

future ×1

http ×1

httpresponse ×1