1
我需要在Dart中反复调用异步函数,我们将其称为expensiveFunction
,以获取可变数目的参数。但是,由于每次调用都非常耗费内存,所以我不能并行运行它们。我如何强制他们顺序运行?顺序处理飞镖中可变数量的异步函数
我已经试过这样:
argList.forEach(await (int arg) async {
Completer c = new Completer();
expensiveFunction(arg).then((result) {
// do something with the result
c.complete();
});
return c.future;
});
,但一直没有达到预期效果。对argList
中的每个arg
仍然并行调用expensiveFunction
。我真正需要的是等待forEach
循环,直到expensiveFunction
完成,然后才能继续执行argList
中的下一个元素。我怎样才能做到这一点?
这么简单...我为什么没有想到它?我设法通过递归来解决它,但是您的解决方案更加优雅。 –
您也可以使用'Future.forEach(argList,expensiveFunction)'。 – lrn