hur*_*lad 4 testing stream node.js
假设我正在使用节点的PassThrough流来测试我的流实用程序,我想要一些数据来自我的流.
var s = new require('stream').PassThrough();
s.push(x); // <==== Are these identical?
s.write(x);
Run Code Online (Sandbox Code Playgroud)
有理由偏爱一个吗?
use*_*109 13
不,他们并不完全相同.
push用于实现可读流.它将数据推入读取队列,然后可以通过调用read()来读取.如果使用null调用它,则它将发出数据结束信号(EOF).参见给出的注释:
注意:此函数应由可读实现者调用,而不是由可读流的使用者调用.
要实现流,开发人员必须编写某些方法,此处给出.
Use-case Class Method(s) to implement
Reading only Readable _read
Writing only Writable _write
Reading and writing Duplex _read, _write
Operate on written data, then read the result Transform _transform, _flush
Run Code Online (Sandbox Code Playgroud)
推必须只能用于能够读取的数据流(),即读,双工和变换流.它只能在这些函数_read,_transform或_flush中使用.PassThrough是Transform的一个实现.
write应该由可写流的用户使用.
此方法将一些数据写入底层系统,并在数据完全处理后调用提供的回调.
如果您打算使用Writable流(写入),请使用write.push不是写的替代品.使用write for PassThrough.
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |