gpt4 book ai didi

javascript - 在 Node js 读取流上调用 readStream.destroy() 不会停止读取

转载 作者:行者123 更新时间:2023-12-05 06:22:53 56 4
gpt4 key购买 nike

希望你们一切都好。

我在 Node Js 中遇到流问题,我想寻求您的帮助:

我正在读取一个文件:const readStream = fs.createReadStream('./veryBigFile');

然后我将输出通过管道传递给 POST 请求,如下所示:

readStream.pipe(post_req);

但是,我想在一定超时后停止读取文件,并停止 POST 请求。

我尝试了 readStream.close() 和 readStream.destroy() 但它们不起作用(我将一个“结束”监听器附加到 readStream,它在超时后不会被触发)。

有什么想法吗?

最佳答案

基里尔·格罗什科夫 (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}`);
}
});

关于javascript - 在 Node js 读取流上调用 readStream.destroy() 不会停止读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58878066/

56 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com