pub macro join( $($fut:expr),+ $(,)? ) { ... }
🔬This is a nightly-only experimental API. (
future_join
#91642)Expand description
同时轮询多个 futures,完成后,返回所有结果的元组。
虽然 join!(a, b).await
类似于 (a.await, b.await)
,但 join!
会同时轮询两个 futures,因此效率更高。
Examples
#![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));
Runjoin!
的参数是可变的,因此您可以传递任意数量的 futures:
#![feature(future_join)]
use std::future::join;
async fn one() -> usize { 1 }
async fn two() -> usize { 2 }
async fn three() -> usize { 3 }
let x = join!(one(), two(), three()).await;
assert_eq!(x, (1, 2, 3));
Run