我有一个rust的async
函数列表,我想同时执行,然后等待所有这些函数完成。我现在的工作代码是
async fn start_consumers(&self) {
for consumer in &self.consumers {
consumer.consume().await;
}
}
由于功能是串行执行的,因此不太准确。我正在寻找类似join!
的东西,但它适用于动态矢量,使用它我应该能够写类似 async fn start_consumers(&self) {
let mut v = Vec::new();
for consumer in &self.consumers {
consumer.consume();
}
join!(v);
}
现在,join!
仅支持元组。我正在寻找替代方案。与JavaScript中的Promise.all()类似。
最佳答案
我在同一天也问了类似的问题,但就我而言,我用Result
包装了一个Future
。因此,我不得不使用try_join_all而不是join_all
关于asynchronous - 如何等待rust中的异步函数调用列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63350779/