3 个不稳定版本
0.2.1 | 2022 年 3 月 28 日 |
---|---|
0.2.0 | 2022 年 3 月 26 日 |
0.1.0 | 2022 年 3 月 21 日 |
#12 in #🦀
用于 udpsec
8KB
115 行
🦀 wait_not_await
Rust 中的简单 awaiter 实现
示例
将 await 作为变量
use std::time::Duration;
use wait_not_await::Await;
let mut awaiter = Await::new(move || {
std::thread::sleep(Duration::from_secs(3));
"Hello, Wolrd!".to_string()
});
if let Some(result) = awaiter.wait(None) {
println!("Result: {}", result);
}
使用函数的 await
use std::time::Duration;
use wait_not_await::Await;
fn async_hello_world() -> Await<String> {
Await::new(move || {
std::thread::sleep(Duration::from_secs(2));
"Hello, World!".to_string()
})
}
println!("{}", async_hello_world().wait(None).unwrap());
await 结果处理
use std::time::Duration;
use wait_not_await::Await;
let awaiter = Await::new(move || {
std::thread::sleep(Duration::from_secs(3));
"Hello, Wolrd!".to_string()
});
awaiter.then(move |result| {
println!("Task result: {}", result);
});
带有结果的 await 循环
use std::time::Duration;
use wait_not_await::Await;
fn async_hello_world() -> Await<String> {
Await::new(move || {
std::thread::sleep(Duration::from_secs(2));
"Hello, World!".to_string()
})
}
let mut awaiter = async_hello_world();
let mut i = 1;
while let None = awaiter.result() {
println!("Waiting for result: {}", i);
i += 1;
}
println!("{}", awaiter.result().unwrap());
作者: Nikita Podvirnyy
许可协议: MIT