future::try_join_all
是对Future
的集合的非阻塞调用,以便执行器驱动所有Future
完成。由于它是非阻塞的,因此它产生,然后调用者执行下一行代码。
例如在伪代码中
use future;
[... some fn main etc.]
let futures: Vec<_> = vec![future_one, future_two];
future::try_join_all(futures).await?;
println!("Hello");
"Hello"
即使future_one
或future_two
尚未完成其执行也会被打印。
有没有一种方法可以阻止Future的收集,以便在所有Future都被驱动完成之后,控制权才被交还给调用者?
1条答案
按热度按时间unftdfkk1#
很简单只在
try_join_all()
上阻塞。例如,使用tokio