From 85606de6644b773e03305c3cc8914211f76a9340 Mon Sep 17 00:00:00 2001 From: KaiserY Date: Sun, 9 Mar 2025 21:03:53 +0800 Subject: [PATCH] update ch17-04 close 849 --- src/ch17-04-streams.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ch17-04-streams.md b/src/ch17-04-streams.md index 3934a63..39563cd 100644 --- a/src/ch17-04-streams.md +++ b/src/ch17-04-streams.md @@ -96,7 +96,7 @@ help: there is a method `try_next` with a similar name 很多概念天然地可以用流来代表:队列中可用的项;或者处理超过计算机内存的数据,一次只能从文件系统拉取一个块;或者通过网络随着时间推移到达的数据。因为流是 future,我们也可以将其用于任何其它类型的 future,并且我们可以用一种非常有趣的方式来组合它们。例如,我们可以批量处理事件来避免触发过多的网络调用,为一系列的长时间运行的任务设置超时,或者对用户接口事件限速来避免进行无尽的工作。 -让我们构建一个小的消息流作为开始,将其作为一个可能从 WebSocket 或者其它现实世界中的通信协议中遇到的数据流的替代。在示例 17-33 中,我们创建了一个返回 `impl Stream` 的 `get_messages` 函数。作为其实现,我们创建了一个异步信道,循环英文字母表的前是个字符,并通过信道发送它们。 +让我们构建一个小的消息流作为开始,将其作为一个可能从 WebSocket 或者其它现实世界中的通信协议中遇到的数据流的替代。在示例 17-33 中,我们创建了一个返回 `impl Stream` 的 `get_messages` 函数。作为其实现,我们创建了一个异步信道,循环英文字母表的前十个字符,并通过信道发送它们。 我们还使用了一个新类型:`ReceiverStream`,它将 `trpl::channel` 的 `rx` 接收端转换为一个带有带有 `next` 方法的 `Stream`。回到 `main`,我们使用了一个 `while let` 循环来打印来自流中的所有消息。