【问题标题】:Join a dynamic number of futures加入动态数量的期货
【发布时间】:2022-11-25 23:56:27
【问题描述】:

join!可以加入多个异步操作:

#![feature(future_join)]

use std::future::join;

async fn one() -> usize { 1 }
async fn two() -> usize { 2 }

let x = join!(one(), two()).await;
assert_eq!(x, (1, 2));

有没有办法从一个向量中加入多个未来,这样异步调用的数量是动态的(在编译时未知)?

【问题讨论】:

    标签: rust


    【解决方案1】:

    您可以使用期货箱中的join_all

    从文档:

    use futures::future::join_all;
    
    async fn foo(i: u32) -> u32 { i }
    
    let futures = vec![foo(1), foo(2), foo(3)];
    
    assert_eq!(join_all(futures).await, [1, 2, 3]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-17
      • 1970-01-01
      • 2020-11-22
      • 2016-04-05
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      相关资源
      最近更新 更多