在 [writable._write()]、[writable._writev()] 和 [writable._final()] 方法的处理期间发生的错误必须通过调用回调并将错误作为第一个参数传入来冒泡。 从这些方法中抛出 Error 或手动触发 'error' 事件会导致未定义的行为。

    如果 Readable 流通过管道传送到 Writable 流时 Writable 触发了错误,则 Readable 流将会被取消管道。

    1. const { Writable } = require('stream');
    2. const myWritable = new Writable({
    3. write(chunk, encoding, callback) {
    4. if (chunk.toString().indexOf('a') >= 0) {
    5. callback(new Error('数据块是无效的'));
    6. } else {
    7. callback();
    8. }
    9. }
    10. });