写入时出错
在 writable._write()
、writable._writev()
和 writable._final()
方法的处理过程中发生的错误必须通过调用回调并将错误作为第一个参数传入来传播。
从这些方法中抛出 Error
或手动触发 'error'
事件会导致未定义的行为。
如果 Readable
流在 Writable
触发错误时通过管道传输到 Writable
流,则 Readable
流将被取消管道。
const { Writable } = require('node:stream');
const myWritable = new Writable({
write(chunk, encoding, callback) {
if (chunk.toString().indexOf('a') >= 0) {
callback(new Error('chunk is invalid'));
} else {
callback();
}
},
});
Errors occurring during the processing of the writable._write()
,
writable._writev()
and writable._final()
methods must be propagated
by invoking the callback and passing the error as the first argument.
Throwing an Error
from within these methods or manually emitting an 'error'
event results in undefined behavior.
If a Readable
stream pipes into a Writable
stream when Writable
emits an
error, the Readable
stream will be unpiped.
const { Writable } = require('node:stream');
const myWritable = new Writable({
write(chunk, encoding, callback) {
if (chunk.toString().indexOf('a') >= 0) {
callback(new Error('chunk is invalid'));
} else {
callback();
}
},
});