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
等待多个飞行中的Future
s:
await Future.wait([
for (int i = 0; i < myObjectList.length; i++)
myAsynchronousOperation(myObjectList[i]),
]);
doFinalOperation();
我在 Dart 中有一个对象列表,我想对这些对象中的每一个执行异步操作。在所有异步操作完成后,我想执行最后一个操作。我目前正在使用如下代码执行此操作:
for (int i = 0; i < myObjectList.length; i++) {
await myAsynchronousOperation(myObjectList[i]);
}
doFinalOperation();
虽然这在技术上可行,但我认为它效率低下,因为 for 循环将等待第一个异步操作完成,然后再开始第二个异步操作。所以根据我的理解,我们最终会同步触发异步操作,这不是异步编程的本意。
因此,我的问题是,是否有可能以某种方式一次触发所有异步操作,然后等到它们全部完成,然后最后执行最后的操作。提前致谢!
使用Future.wait
等待多个飞行中的Future
s:
await Future.wait([
for (int i = 0; i < myObjectList.length; i++)
myAsynchronousOperation(myObjectList[i]),
]);
doFinalOperation();