当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js new stream.Writable([options])用法及代码示例


new stream.Writable([options])

历史
版本变化
v15.5.0

支持传入 AbortSignal。

v14.0.0

autoDestroy 选项默认更改为 true

v11.2.0、v10.16.0

添加 autoDestroy 选项以在流发出 'finish' 或错误时自动 destroy() 流。

v10.0.0

添加emitClose 选项以指定是否在销毁时发出'close'


参数
const { Writable } = require('node:stream');

class MyWritable extends Writable {
  constructor(options) {
    // Calls the stream.Writable() constructor.
    super(options);
    // ...
  }
}

或者,当使用 pre-ES6 风格的构造函数时:

const { Writable } = require('node:stream');
const util = require('node:util');

function MyWritable(options) {
  if (!(this instanceof MyWritable))
    return new MyWritable(options);
  Writable.call(this, options);
}
util.inherits(MyWritable, Writable);

或者,使用简化的构造方法:

const { Writable } = require('node:stream');

const myWritable = new Writable({
  write(chunk, encoding, callback) {
    // ...
  },
  writev(chunks, callback) {
    // ...
  }
});

在对应于传递的AbortSignalAbortController 上调用abort 的行为方式与在可写流上调用.destroy(new AbortError()) 的方式相同。

const { Writable } = require('node:stream');

const controller = new AbortController();
const myWritable = new Writable({
  write(chunk, encoding, callback) {
    // ...
  },
  writev(chunks, callback) {
    // ...
  },
  signal: controller.signal
});
// Later, abort the operation closing the stream
controller.abort();

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 new stream.Writable([options])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。