當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。