如果我在命令行中运行它,程序将在client.destroy();
之后停止var client = http.get(options,
function(res) {
console.log(res.statusCode);
client.destroy();
}
);
但是,当我将client.destroy()放在res.on('end')中时,情况并非如此:
var client = http.get(options,
function(res) {
console.log(res.statusCode);
res.on('end', function() {
console.log("done");
client.destroy();
});
}
);
它将抛出异常,因为http.socket为null。所以,我无法摧毁它。
在这种情况下,程序执行将挂起并且不会结束。我能做些什么来阻止它? (除了process.exit());
答案 0 :(得分:5)
如果是单个请求,您可以将shouldKeepAlive设置为false
var request = http.get(options,
function(res) {
console.log(res.statusCode);
}
);
request.shouldKeepAlive = false
或发送Connection: close
标题
您无法访问套接字,因为它是detached
中的the request 'end' event handler