options{Object} 同时传给Writable和Readable的构造函数。allowHalfOpen{boolean} 如果设为false,则当可读端结束时,可写端也会自动结束。 默认为true。readable{boolean} Sets whether theDuplexshould be readable. Default:true.writable{boolean} Sets whether theDuplexshould 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) {// ...}});
