Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何在nodejs中的管道流中的错误事件后恢复?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在MyWritableStream中发出错误事件后,数据传输停止.我需要做什么才能恢复数据传输?

var readable = fs.createReadStream('test.txt');
var writable = new MyWritableStream();

writable.on('error',function(error) {
    console.log('error',error);
    // How i can resume?
});

writable.on('finish',function(){
    console.log('finished');
})

readable.pipe(writable);

解决方法

我不确定,如果这是正常的做法,但我现在看不到另一个解决方案&这个对我有用.如果您可以提供更准确的解决方案,请执行此操作.

我们可以使用可写入的管道事件跟踪可读的流实例:

function WriteableStream(options) {
    Writable.call(this,options);

    this.source = null;

    var instance = this;

    this.on('pipe',function(source){
        instance.source = source;
    });
}
util.inherits(WriteableStream,Writable);

因此,当我们发出错误事件,并且可读流自动取消时,我们可以自己重新管道:

WriteableStream.prototype._write = function(chunk,encoding,done) {
    this.emit('error',new Error('test')); // unpipes readable
    done();
};

WriteableStream.prototype.resume = function() {
    this.source.pipe(this); // re-pipes readable
}

最后,我们将使用以下方式:

var readable = fs.createReadStream(file);
var writeable = new WriteableStream();

writeable.on('error',error);
    writeable.resume();
});

readable.pipe(writeable);

大佬总结

以上是大佬教程为你收集整理的node.js – 如何在nodejs中的管道流中的错误事件后恢复?全部内容,希望文章能够帮你解决node.js – 如何在nodejs中的管道流中的错误事件后恢复?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: