說明
示例
use futures::{future, select};
use tokio::runtime::Runtime;
async fn count() {
let mut a_fut = future::ready(4);
let mut b_fut = future::ready(6);
let mut total = 0;
loop {
select! {
a = a_fut => total += a,
b = b_fut => total += b,
complete => break,
default => unreachable!(), // never runs (futures are ready, then complete)
};
}
assert_eq!(total, 10);
}
fn main() {
let mut runtime = Runtime::new().unwrap();
runtime.block_on(count());
}
[dependencies]
futures = "0.3.5"
tokio = { version = "0.2", features = ["full"] }