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));
Run Code Online (Sandbox Code Playgroud)
有没有办法从一个向量中加入多个 future,以便异步调用的数量是动态的(在编译时未知)?
join_all
您可以从期货箱中使用。
来自文档:
Run Code Online (Sandbox Code Playgroud)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]);