Node.js 等待x时间,如果没有响应则返回

Node.js 等待x时间,如果没有响应则返回,node.js,http,Node.js,Http,我正在尝试使用HTTPnpm模块测试HTTP请求。如果请求未成功,则不会提供响应。我正在尝试这样做,如果在3秒钟内没有响应,它将运行诸如console.log('didnt work')之类的代码 我所拥有的: http.get({ path: 'http://google.com' }, function (response) { if (!response) { console.log('didnt work') } else { co

我正在尝试使用
HTTP
npm模块测试HTTP请求。如果请求未成功,则不会提供响应。我正在尝试这样做,如果在3秒钟内没有响应,它将运行诸如
console.log('didnt work')
之类的代码

我所拥有的:

http.get({
    path: 'http://google.com'
}, function (response) {
    if (!response) {
        console.log('didnt work')
    } else {
        console.log('worked')
    }

});

首先,请记住http请求是一个异步操作,无论响应或超时是事件驱动的,其结果都是异步的。因此,在响应或超时发生之前,这里没有任何内容阻塞。相反,您为事件注册回调或侦听器,然后响应这些事件

更具体地说,您可以使用http.get()的
timeout
功能。博士

request.setTimeout(超时[,回调])
请求超时前的超时毫秒。
发生超时时要调用的回调可选函数。
与绑定到“超时”事件相同。
返回:
将套接字分配给此请求并连接后
`将调用socket.setTimeout()。

如果它在您设置的超时时间内没有看到响应,那么它将生成超时事件,调用回调并关闭套接字。您可以使用它作为套接字的事件驱动结论,就像等待
数据
事件一样。

这与回答您的问题有什么不同?
request.setTimeout(timeout[, callback])

timeout <number> Milliseconds before a request times out.

callback <Function> Optional function to be called when a timeout occurs.
                    Same as binding to the 'timeout' event.

Returns: <http.ClientRequest>

Once a socket is assigned to this request and is connected 
`socket.setTimeout()` will be called.