流读(0)指令

2024-01-16

我在这里找到了一个代码https://github.com/substack/stream-handbook https://github.com/substack/stream-handbook它从流中读取 3 个字节。我不明白它是如何工作的。

process.stdin.on('readable', function() {
    var buf = process.stdin.read(3);
    console.log(buf);
    process.stdin.read(0);
});

被这样称呼:

(echo abc; sleep 1; echo def; sleep 1; echo ghi) | node consume.js

它返回:

<Buffer 61 62 63>
<Buffer 0a 64 65>
<Buffer 66 0a 67>
<Buffer 68 69 0a>

首先,为什么我需要这个.read(0)事物?流不是有一个缓冲区来存储其余数据的,直到我通过以下方式请求它.read(size)?但没有.read(0)它会打印

<Buffer 61 62 63>
<Buffer 0a 64 65>
<Buffer 66 0a 67>

Why?

第二个就是这些sleep 1指示。如果我在没有它的情况下调用脚本

(echo abc; echo def; echo ghi) | node consume.js

它会打印

<Buffer 61 62 63>
<Buffer 0a 64 65>

不管我会用.read(0)或不。我完全不明白这一点。这里用什么逻辑来打印这样的结果呢?


我不确定作者具体是什么https://github.com/substack/stream-handbook https://github.com/substack/stream-handbook尝试使用 read(0) 方法进行展示,但恕我直言,这是正确的方法:

process.stdin.on('readable', function () {
  let buf;
  // Every time when the stream becomes readable (it can happen many times), 
  // read all available data from it's internal buffer in chunks of any necessary size.
  while (null !== (buf = process.stdin.read(3))) {
    console.dir(buf);
  }
});

您可以更改块大小,在睡眠或不睡眠的情况下传递输入......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

流读(0)指令 的相关文章

随机推荐

  • 在 ffmpeg 中将 2 个音频文件与一个视频合并

    我正在尝试合并 2 个音频文件 wav带视频文件 mp4 产生输出video mp4使用 ffmpeg 进行扩展Windows CMD 这是我尝试过的 ffmpeg i V MP4 i A1 WAV i A2 WAV map 0 v map
  • 在 C# 中检测多个同时按键

    我希望通过检测某些无法键入的组合键 转义序列 的按键来模拟 C 中的串行通信的超级终端功能 例如 Ctrl C Ctrl Z 等 我知道这些键有其 ASCII等价物 并且可以按原样传输 但我在检测多个按键时遇到问题 我提供一些代码作为参考
  • 顶部导航已隐藏

    当我滚动到页面底部并看到页脚时 我不希望隐藏导航顶部 下面是滚动之前的状态 Below is a screenshot when scrolling down to the page 这是代码
  • 从 int 中获取单个字节

    我得到了一个 int 数 例如 5630 十进制 二进制数是 00000000 00000000 00010101 11111110 我想获得十进制的第二个字节 00010101 我怎样才能得到它 您可以使用BitConverter Get
  • 有哪些类型的测试?

    我总是独自工作 我的测试方法通常是经常编译 并确保我所做的更改工作良好 如果不工作则修复它们 然而 我开始觉得这还不够 我对标准类型的测试感到好奇 有人可以告诉我基本测试 每个测试的简单示例以及为什么使用它 测试什么吗 Thanks 不同的
  • 使用故事板时,IBoutlets 很快为零

    在我的一个ViewControllers 当我到达viewWillAppear 我所有的IBOutlets are nil 我尝试查看 matt的解决方案 但它适用于笔尖而不是故事板 这只是当我在 iOS 7 设备上运行应用程序时出现的问题
  • 重新打包 .jar 文件

    我需要将 JRE7 库中的一些 jar 添加到我的 Android 项目中 但例如rt jar与以下内容相冲突android jar来自 Adroid 2 2 SDK 所以我收到此错误 不明智或错误地使用核心类 java 或 javax 当
  • 适用于 Linux 和 PHP 5.4 的 MSSQL Server 本机 ODBC 驱动程序

    我在 Linux Debian 6 x64 上有 Apache 2 2 16 和 PHP 5 4 3 要安装适用于 Linux 的 MSSQL Server 的本机 ODBC 驱动程序 我使用以下说明 http www codesynthe
  • 如何强制重新编译 Linq to SQL 查询的执行计划?

    我有一个动态创建的 LINQ to SQL 查询 有趣的是 当我在 SQL Management Studio 中运行它时 速度快如闪电 当我从 L2S 运行它时 一段时间后它变得非常慢 这可能是由于查询计划 执行计划造成的 当我重新启动
  • 连接两个表时索引如何提高性能

    在我们的一篇练习论文中 我们被问到了标题中的问题 我读过的大多数文章都说索引可以提高连接的性能 但没有告诉我如何提高 也许这是显而易见的事情 不需要说明 索引本质上是对列进行排序 对吗 所以我想按顺序排列一列会更容易操作 还有更多吗 还是我
  • 以简单的方式将 SQL 转换为 SQLite? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我的问题 有人有一种超级简单的方法在
  • 主机名未解析为本地 IP 地址

    我正在 vmware Fusion 中运行 Windows 8 虚拟机 它在运行 OSX 10 10 Yosemite 的 Mac 内运行 VM 的计算机名称为 Proud 当我从内部 ping 虚拟机时 即ping a 192 168 0
  • 基于逗号分隔字符向量列值的Python熔化数据框

    我目前正在进行一项测试 其中有不同的区域和一些相关的统计数据 以及位于这些区域的以逗号分隔的基因列表 该列表的数量是可变的 并且可能不包含任何内容 NA 我怎样才能 融化 这个数据框 region id statistic genelist
  • 使用 Excel VBA 编写和格式化 Word 文档

    我正在尝试使用 Excel VBA 编写 Word 文档 我可以创建一个Word文档 向其中写入文本 更改样式都不是问题 我想做的是将一些文本居中 但我一生都无法弄清楚 这是我用来编写文档的代码 Set wrdApp CreateObjec
  • 显示并关闭模态视图控制器 UIImagePickerController 之后,我的 Cocos2d iPhone 应用程序不再看到多次触摸

    我有一个应用程序 我在其中显示照片选择器 UIImagePickerController 但在用户关闭后 只有单次触摸才起作用 我想我知道问题的根源 但我不知道如何解决它 在显示模式对话框之前 触摸期间的堆栈如下所示 3 0x00074de
  • CakePHP 3 手动安装

    目前我使用 CakePHP 2 6 8 我想迁移到 CakePHP 3 安装指南 http book cakephp org 3 0 en installation html推荐使用Composer 但 Composer 并不能完成所有工作
  • 对数组中每个值的新 API 调用

    我基本上想要这种对象 id 5040 requester id 1234 requester name 约翰 id 5046 requester id 999 requester name 吉姆 id 5049 requester id 5
  • 使用CSS创建水平树

    我有一个数组 用于填充谱系表 它的顺序是这样的 3 1 4 5 2 6 等等 一个例子是http bullybloodlines net dogdetails php name muscletone 27s lucky bam bam of
  • 使用另一个类的 JavaFx 应用程序实例

    我有一个如下所示的 MainWindowFx 类 它基本上创建了一个简单的JavaFX GUI package drawappfx import javafx stage Stage import javafx scene Scene im
  • 流读(0)指令

    我在这里找到了一个代码https github com substack stream handbook https github com substack stream handbook它从流中读取 3 个字节 我不明白它是如何工作的 p