fixed some outdated links

pull/1163/head
sunface 2 years ago
parent 83cb5dfcf9
commit 1bed5a4ec4

@ -141,7 +141,7 @@ pub async fn connect<T: ToSocketAddrs>(addr: T) -> Result<Client> {
在上例中,`redis` 的连接函数 `connect` 实现如上,它看上去很像是一个同步函数,但是 `async fn` 出卖了它。
`async fn` 异步函数并不会直接返回值,而是返回一个 `Future`,顾名思义,该 `Future` 会在未来某个时间点被执行,然后最终获取到真实的返回值 `Result<Client>`
> async/await 的原理就算大家不理解,也不妨碍使用 `tokio` 写出能用的服务,但是如果想要更深入的用好,强烈建议认真读下本书的 [`async/await` 异步编程章节](https://course.rs/async-rust/async/intro.html),你会对 Rust 的异步编程有一个全新且深刻的认识。
> async/await 的原理就算大家不理解,也不妨碍使用 `tokio` 写出能用的服务,但是如果想要更深入的用好,强烈建议认真读下本书的 [`async/await` 异步编程章节](https://course.rs/advance/async/intro.html),你会对 Rust 的异步编程有一个全新且深刻的认识。
由于 `async` 会返回一个 `Future`,因此我们还需要配合使用 `.await` 来让该 `Future` 运行起来,最终获得返回值:

@ -2,7 +2,7 @@
同志们,抓稳了,我们即将换挡提速,通向 `mini-redis` 服务端的高速之路已经开启。
不过在开始之前,先来做点收尾工作:上一章节中,我们实现了一个简易的 `mini-redis` 客户端并支持了 `SET`/`GET` 操作, 现在将该[代码](https://course.rs/async-rust/tokio/getting-startted.html#分析未到代码先行)移动到 `examples` 文件夹下,因为我们这个章节要实现的是服务器,后面可以通过运行 `example` 的方式,用之前客户端示例对我们的服务器端进行测试:
不过在开始之前,先来做点收尾工作:上一章节中,我们实现了一个简易的 `mini-redis` 客户端并支持了 `SET`/`GET` 操作, 现在将该[代码](https://course.rs/advance-practice/getting-startted.html#分析未到代码先行)移动到 `examples` 文件夹下,因为我们这个章节要实现的是服务器,后面可以通过运行 `example` 的方式,用之前客户端示例对我们的服务器端进行测试:
```shell
$ mkdir -p examples

@ -22,7 +22,7 @@ fn bar() -> impl Future<Output = u8> {
`async` 是懒惰的,直到被执行器 `poll` 或者 `.await` 后才会开始运行,其中后者是最常用的运行 `Future` 的方法。 当 `.await` 被调用时,它会尝试运行 `Future` 直到完成,但是若该 `Future` 进入阻塞,那就会让出当前线程的控制权。当 `Future` 后面准备再一次被运行时(例如从 `socket` 中读取到了数据),执行器会得到通知,并再次运行该 `Future` ,如此循环,直到完成。
以上过程只是一个简述,详细内容在[底层探秘](https://course.rs/async-rust/async/future-excuting.html)中已经被深入讲解过,因此这里不再赘述。
以上过程只是一个简述,详细内容在[底层探秘](https://course.rs/advance/async/future-excuting.html)中已经被深入讲解过,因此这里不再赘述。
## `async` 的生命周期

@ -300,7 +300,7 @@ impl Write for MockTcpStream {
}
```
最后,我们的 mock 需要实现 `Unpin` 特征,表示它可以在内存中安全的移动,具体内容在[前面章节](https://course.rs/async-rust/async/pin-unpin.html)有讲。
最后,我们的 mock 需要实现 `Unpin` 特征,表示它可以在内存中安全的移动,具体内容在[前面章节](https://course.rs/advance/async/pin-unpin.html)有讲。
```rust
use std::marker::Unpin;

Loading…
Cancel
Save