文章目录加载中
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