mur*_*lai 6 http request node.js destroy
如果我在命令行中运行它,程序将在client.destroy()之后停止;
var client = http.get(options,
function(res) {
console.log(res.statusCode);
client.destroy();
}
);
Run Code Online (Sandbox Code Playgroud)
但是,当我将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();
});
}
);
Run Code Online (Sandbox Code Playgroud)
它将抛出异常,因为http.socket为null.所以,我无法摧毁它.
在这种情况下,程序执行将挂起并且不会结束.我能做些什么来阻止它?(除了process.exit());
如果是单个请求,您可以将shouldKeepAlive设置为false
var request = http.get(options,
function(res) {
console.log(res.statusCode);
}
);
request.shouldKeepAlive = false
Run Code Online (Sandbox Code Playgroud)
或发送Connection: close标题
您无法访问套接字,因为它在请求'end'事件处理程序中已分离
| 归档时间: |
|
| 查看次数: |
10625 次 |
| 最近记录: |