asynchronous - 如何等待rust中的异步函数调用列表?

标签 asynchronous rust async-await rust-async-std

我有一个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/

相关文章:

javascript - 将回调更改为 promise 链

javascript - 从循环nodejs中的函数获取值

rust - Rust actix_web::main “expected ` std::result::Result <(),std::io::Error >` because of return type”但建议的类型不起作用

generics - 带有通用参数的 to_string

python - 使用 asyncio.wait 在任务异常后重试任务

javascript - Typescript async/await 与 Observable 或 Promise

swift - 如何在 Swift 中使带有循环的函数异步?

javascript - JavaScript在浏览器中运行的单线程概念

multithreading - 在线程之间发送 Nalgebra VectorN

JavaScript React async/await 返回错误的主体?