update ch17-04 close 849

pull/851/head
KaiserY 4 weeks ago
parent 56103bda1f
commit 85606de664

@ -96,7 +96,7 @@ help: there is a method `try_next` with a similar name
很多概念天然地可以用流来代表:队列中可用的项;或者处理超过计算机内存的数据,一次只能从文件系统拉取一个块;或者通过网络随着时间推移到达的数据。因为流是 future我们也可以将其用于任何其它类型的 future并且我们可以用一种非常有趣的方式来组合它们。例如我们可以批量处理事件来避免触发过多的网络调用为一系列的长时间运行的任务设置超时或者对用户接口事件限速来避免进行无尽的工作。
让我们构建一个小的消息流作为开始,将其作为一个可能从 WebSocket 或者其它现实世界中的通信协议中遇到的数据流的替代。在示例 17-33 中,我们创建了一个返回 `impl Stream<Item = String>``get_messages` 函数。作为其实现,我们创建了一个异步信道,循环英文字母表的前个字符,并通过信道发送它们。
让我们构建一个小的消息流作为开始,将其作为一个可能从 WebSocket 或者其它现实世界中的通信协议中遇到的数据流的替代。在示例 17-33 中,我们创建了一个返回 `impl Stream<Item = String>``get_messages` 函数。作为其实现,我们创建了一个异步信道,循环英文字母表的前个字符,并通过信道发送它们。
我们还使用了一个新类型:`ReceiverStream`,它将 `trpl::channel``rx` 接收端转换为一个带有带有 `next` 方法的 `Stream`。回到 `main`,我们使用了一个 `while let` 循环来打印来自流中的所有消息。

Loading…
Cancel
Save