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));
有没有办法从一个向量连接多个期货,从而使异步调用的数量是动态的(在编译时未知)?
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));
有没有办法从一个向量连接多个期货,从而使异步调用的数量是动态的(在编译时未知)?
你可以使用期货 crate 中的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]);