options
{Object} 同时传给Writable
和Readable
的构造函数。allowHalfOpen
{boolean} 如果设为false
,则当可读端结束时,可写端也会自动结束。 默认为true
。readable
{boolean} Sets whether theDuplex
should be readable. Default:true
.writable
{boolean} Sets whether theDuplex
should be writable. Default:true
.readableObjectMode
{boolean} 设置流的可读端为objectMode
。 如果objectMode
为true
,则不起作用。 默认为false
。writableObjectMode
{boolean} 设置流的可写端为objectMode
。 如果objectMode
为true
,则不起作用。 默认为false
。readableHighWaterMark
{number} 设置流的可读端的highWaterMark
。 如果已经设置了highWaterMark
,则不起作用。writableHighWaterMark
{number} 设置流的可写端的highWaterMark
。 如果已经设置了highWaterMark
,则不起作用。
const { Duplex } = require('stream');
class MyDuplex extends Duplex {
constructor(options) {
super(options);
// ...
}
}
使用 ES6 之前的语法:
const { Duplex } = require('stream');
const util = require('util');
function MyDuplex(options) {
if (!(this instanceof MyDuplex))
return new MyDuplex(options);
Duplex.call(this, options);
}
util.inherits(MyDuplex, Duplex);
使用简化的构造函数:
const { Duplex } = require('stream');
const myDuplex = new Duplex({
read(size) {
// ...
},
write(chunk, encoding, callback) {
// ...
}
});