我希望你们都做得很好。我在 Node Js 中遇到了流问题,我想请求您的帮助:我正在阅读一个文件: const readStream = fs.createReadStream('./veryBigFile');我将输出通过管道发送到一个 POST 请求,如下所示:readStream.pipe(post_req);但是,我想在一定超时后停止读取文件,并停止 POST 请求。我尝试了 readStream.close() 和 readStream.destroy() 但它们不起作用(我将一个“结束”侦听器附加到 readStream,它在超时后不会被触发)。有任何想法吗 ?
1 回答

慕桂英4014372
TA贡献1871条经验 获得超13个赞
在您对 kirill Groshkov 发表评论后,我决定再次查看我的代码,我了解如何使其工作!
在触发销毁事件(使用 readStream.destroy())之后,发出的是“错误”事件,而不是我正在收听的“结束”事件。
所以我仍然必须使用 readStream.destroy('YOUR CUSTOM ERROR MESSAGE') 在超时后停止读取文件。
然后我听了这个自定义错误:
readStream.on('error', e => {
if (e === 'YOUR CUSTOM ERROR MESSAGE') {
post_req.abort(); //To cancel request
// etc.
} else {
reject(`An error occured while uploading data: ${e}`);
}
});
添加回答
举报
0/150
提交
取消