文章目录加载中

NodeJS流编程的常见问题

Q:利用可写流,将输入转换为带有颜色的输出

A:可写流使用流 API 向底层的 I/O 输出数据。本题就是向 process.stdout 输出加工后的数据。

代码地址

Q:利用可读流,按行读取存放 json 的大文件

A: 可读流使用流 API「包装」来自底层的 I/O 源。由于涉及到 json,所以开启objectMode选项把流实例切换到对象模式,这样可以直接 push 一个对象。

代码地址

Q:利用双工流,完成一个带有交互提示的命令行

A:双工流既有 _read 方法,也有 _write 方法,所以它本身是可读可写的。可以在类的内容调用this._push(),也可以在外部对类调用 write() 方法。

代码地址

Q:利用转换流,将 csv 文件内容转换为内部数据结构(数组+对象)

A:转换流是一种特殊的双工流,它不要实现 _read 方法和 _write 方法,但要实现 _transform 方法。

代码要读取 csv 文件,并且要考虑没有读取完整数据的情况。代码利用「状态机」的思想进行了巧妙处理。

代码地址

Q:编写流的单元测试(以前面的转换流为例)

A:代码地址

本文来自心谭博客:xin-tan.com,经常更新web和算法的文章笔记,前往github查看目录归纳:github.com/dongyuanxin/blog
0