|
|
@ -128,7 +128,7 @@ pub async fn connect<T: ToSocketAddrs>(addr: T) -> Result<Client> {
|
|
|
|
由于 `async` 会返回一个 `Future`,因此我们还需要配合使用 `.await` 来让该 `Future` 运行起来,最终获得返回值:
|
|
|
|
由于 `async` 会返回一个 `Future`,因此我们还需要配合使用 `.await` 来让该 `Future` 运行起来,最终获得返回值:
|
|
|
|
```rust
|
|
|
|
```rust
|
|
|
|
async fn say_to_world() -> String {
|
|
|
|
async fn say_to_world() -> String {
|
|
|
|
String::from("hello, world")
|
|
|
|
String::from("world")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[tokio::main]
|
|
|
|
#[tokio::main]
|
|
|
@ -139,8 +139,8 @@ async fn main() {
|
|
|
|
// 首先打印出 "hello"
|
|
|
|
// 首先打印出 "hello"
|
|
|
|
println!("hello");
|
|
|
|
println!("hello");
|
|
|
|
|
|
|
|
|
|
|
|
// 使用 `.await` 让 `say_world` 开始运行起来
|
|
|
|
// 使用 `.await` 让 `say_to_world` 开始运行起来
|
|
|
|
op.await;
|
|
|
|
println!("{}", op.await);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
@ -195,4 +195,4 @@ tokio = { version = "1", features = ["full"] }
|
|
|
|
|
|
|
|
|
|
|
|
总之,`tokio` 做的事情其实是细雨润无声的,在大多数时候,我们并不能感觉到它的存在,但是它确实是异步编程中最重要的一环(或者之一),深入了解它对我们的未来之路会有莫大的帮助。
|
|
|
|
总之,`tokio` 做的事情其实是细雨润无声的,在大多数时候,我们并不能感觉到它的存在,但是它确实是异步编程中最重要的一环(或者之一),深入了解它对我们的未来之路会有莫大的帮助。
|
|
|
|
|
|
|
|
|
|
|
|
接下来,正式开始 `tokio` 的学习之旅。
|
|
|
|
接下来,正式开始 `tokio` 的学习之旅。
|
|
|
|