在Rust异步编程中能否像在同步编程中一样使用问号呢?我们来试试。
示例
- 源码
[dependencies]
futures = "0.3"
- 配置文件
use futures;
async fn foo() -> Result<(), String>{
"foo";
Ok(())
}
async fn func() -> Result<(), String>{
let fut = async {
foo().await?;
Ok::<(), String>(()) // <- note the explicit type annotation here
//Ok(()) // <- note the explicit type annotation here
};
fut.await
}
fn main() {
let _ = futures::executor::block_on(func());
println!("Hello, world!");
}