gpt4 book ai didi

node.js - 在结束之前关闭NodeJS中的Http响应流

转载 作者:可可西里 更新时间:2023-11-01 16:32:58 28 4
gpt4 key购买 nike

我正在使用 nodejs 中的请求模块来发出请求,并且正在流式传输我得到的响应。此响应流通过管道传输到 csv 解析器并将记录填充到数组中。获得预设记录数后,我想结束 csv 解析并关闭响应流。如何正确清理响应流。这是伪代码

var stream = request.get(url);
stream.pipe(csvParser);
var count = 15;
csvParser.on("readable",function(){
while(record = csvParser.read()){
if(records.length<count){
records.push(record);
} else {
csvParser.end();
//stream.close();
//stream.unpipe();
// stream.destroy();
}
}
});

csvParser.on("error",function(err){
console.log("Error",err.message);
})

csvParser.on("finish",function(){
//console.log("records",records);
console.log("done");
})

当我尝试 stream.close() 时,它说的是未定义的方法。清理它的正确方法是什么..?

最佳答案

可读流没有close方法。 close 方法是旧 hack 只关闭 fs 读取流(我不知道它是否仍然有效)

可读流中也没有方法destroy

恐怕没有办法在结束前结束流。

您可以停止从流中读取。在您的情况下,流以 flowing 模式 工作,因此调用此方法 csvParser.read() 时,是对下一部分数据的请求。如果您停止调用 csvParser.read(),则此事件 csvParser.on("readable",function(){ 停止触发。

有一些很好的对话 https://groups.google.com/forum/#!msg/nodejs/eGukJUQrOBY/URD8I7tNxRUJ关于类似的情况。

关于node.js - 在结束之前关闭NodeJS中的Http响应流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33411212/

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