Dart - 在 for 循环中等待所有异步任务

Dart - Await all async tasks in a for loop

我在 Dart 中有一个对象列表,我想对这些对象中的每一个执行异步操作。在所有异步操作完成后,我想执行最后一个操作。我目前正在使用如下代码执行此操作:

for (int i = 0; i < myObjectList.length; i++) {
  await myAsynchronousOperation(myObjectList[i]);
}
doFinalOperation();

虽然这在技术上可行,但我认为它效率低下,因为 for 循环将等待第一个异步操作完成,然后再开始第二个异步操作。所以根据我的理解,我们最终会同步触发异步操作,这不是异步编程的本意。

因此,我的问题是,是否有可能以某种方式一次触发所有异步操作,然后等到它们全部完成,然后最后执行最后的操作。提前致谢!

使用Future.wait等待多个飞行中的Futures:

await Future.wait([
  for (int i = 0; i < myObjectList.length; i++)
    myAsynchronousOperation(myObjectList[i]),
]);
doFinalOperation();