我有一个async
rust 函数列表,我想同时执行这些函数,然后等待它们完成。我现在的工作代码是
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()的东西。