我有两个选项可以为我的http请求设置超时。我不确定他们的区别。
首先是:
req.setTimeout(2000,function () {
req.abort();
console.log("timeout");
self.emit('pass',message);
});
第二个是:
req.on('socket', function (socket) {
socket.setTimeout(2000);
socket.on('timeout', function() {
req.abort();
self.emit('pass',message);
});
}
答案 0 :(得分:11)
socket.setTimeout
设置套接字的超时,例如实现HTTP Keep-Alive。
request.setTimeout
就会在内部调用socket.setTimeout
。这在documentation。
因此,没有区别,你可以选择走哪条路。当然,如果您已经有了请求,那么您将坚持使用请求的setTimeout
函数,而不是挖掘底层套接字。