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


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


writable.destroy([error])

历史
版本变化
v14.0.0

在已被销毁的流上作为 no-op 工作。

v8.0.0

添加于:v8.0.0


参数
  • error <Error> 可选,使用 'error' 事件发出错误。
  • 返回: <this>

销毁流。可选择发出 'error' 事件,并发出 'close' 事件(除非 emitClose 设置为 false )。在此调用之后,可写流已结束,随后对 write()end() 的调用将导致 ERR_STREAM_DESTROYED 错误。这是一种破坏性的直接破坏流的方法。以前对 write() 的调用可能尚未耗尽,并且可能会触发 ERR_STREAM_DESTROYED 错误。如果数据应该在关闭之前刷新,则使用end() 而不是destroy,或者在销毁流之前等待'drain' 事件。

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

const myStream = new Writable();

const fooErr = new Error('foo error');
myStream.destroy(fooErr);
myStream.on('error', (fooErr) => console.error(fooErr.message)); // foo error
const { Writable } = require('node:stream');

const myStream = new Writable();

myStream.destroy();
myStream.on('error', function wontHappen() {});
const { Writable } = require('node:stream');

const myStream = new Writable();
myStream.destroy();

myStream.write('foo', (error) => console.error(error.code));
// ERR_STREAM_DESTROYED

一旦 destroy() 被调用,任何进一步的调用都将是 no-op 并且除了来自 _destroy() 之外的任何其他错误都不会作为 'error' 发出。

实施者不应覆盖此方法,而应实施 writable._destroy()

相关用法


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