diff --git a/src/ch17-05-traits-for-async.md b/src/ch17-05-traits-for-async.md index 33e2a66..356e8a5 100644 --- a/src/ch17-05-traits-for-async.md +++ b/src/ch17-05-traits-for-async.md @@ -34,7 +34,7 @@ enum Poll { `Poll` 类型类似于一个 `Option`。它有一个包含值的变体 `Ready(T)`,和一个没有值的变体 `Pending`。不过 `Poll` 所代表的意义与 `Option` 非常不同!`Pending` 变体表明 future 仍然还有工作要进行,所有调用者稍后需要再次检查。`Ready` 变体表明 future 已经完成了其工作并且 `T` 的值是可用的。 -> 注意:对于大部分功能,调用者不应在 future 返回 `Ready` 后再次调用 `poll`。很多 future 在完成后再次轮询会 panic。可以安全地再次轮询的 future 会在文档中显示地说明。这类似于 `Iterator::next` 的行为。 +> 注意:对于大部分功能,调用者不应在 future 返回 `Ready` 后再次调用 `poll`。很多 future 在完成后再次轮询会 panic。可以安全地再次轮询的 future 会在文档中显式地说明。这类似于 `Iterator::next` 的行为。 当你见到使用 `await` 的代码时,Rust 会在底层将其编译为调用 `poll` 的代码。如果你回头看下示例 17-4,其在一个单个 URL 解析完成后打印出页面标题,Rust 将其编译为一些类似(虽然不完全是)这样的代码: