rust的async和await怎么使用?
时间: 2023-10-13 17:15:57 浏览: 132
在 Rust 中,async 和 await 是一对关键字,用于处理异步编程。使用 async 和 await 可以使异步代码更加简洁和易读。
下面是一个简单的例子,演示如何使用 async 和 await:
```rust
use futures::executor::block_on;
use std::time::Duration;
async fn hello_world() {
println!("Hello, world!");
tokio::time::delay_for(Duration::from_secs(1)).await;
println!("Goodbye, world!");
}
fn main() {
let future = hello_world();
block_on(future);
}
```
在这个例子中,我们定义了一个异步函数 `hello_world()`,它会打印 "Hello, world!",然后等待 1 秒钟,最后打印 "Goodbye, world!"。在 `main()` 函数中,我们创建了一个 `hello_world()` 的 Future,并使用 `block_on()` 执行它。
要使用 async 和 await,需要将你的函数标记为异步函数 (`async fn`),然后在需要等待异步操作完成的地方使用 await。在本例中,我们使用了 `tokio::time::delay_for()` 来模拟一个异步操作,并使用 await 等待它完成。
需要注意的是,在 Rust 中使用 async 和 await 需要一个异步运行时库(如 Tokio 或 async-std)。在上面的例子中,我们使用了 Tokio。
阅读全文