繁体   English   中英

管道中的流错误处理-停止上一个流

[英]stream error handling in pipe - stop the previous stream

我正在尝试使用管道功能正确处理错误事件。

鉴于我在Promise中有两个流A(转换stream.passThrough())和B(writeStream),代码如下:

new Promise( (resolve, reject) => {
               A.pipe(B).on('error', (err)=>{reject})
                         .on('end', ()=>{resolve})})

上面的代码拒绝了预期的承诺,但是,流A一直在工作。 有人可以建议我如何阻止A流流动吗?

您可以在发生错误时销毁流A:

transform.destroy([error])销毁流,并发出“错误”。 在此调用之后,转换流将释放任何内部资源。 实现者不应重写此方法,而应实现可读._destroy()。 _destroy()用于Transform的默认实现也发出“关闭”。

编辑

new Promise( (resolve, reject) => {
               A.pipe(B).on('error', err => { A.destroy(); reject(err); })
                         .on('end',    e => { resolve(e) })
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM