📅  最后修改于: 2023-12-03 15:17:54.689000             🧑  作者: Mango
在 Node.js 中,http.ClientRequest.setTimeout() 方法用于设置请求超时时间。
以下是 http.ClientRequest.setTimeout() 方法的语法:
request.setTimeout(timeout[, callback])
参数说明:
timeout
:设置超时时间(毫秒)。callback
:(可选)当请求超时时执行的回调函数。该函数没有返回值。
以下示例演示了如何使用 http.ClientRequest.setTimeout() 方法设置请求超时时间:
const http = require('http');
// 创建一个 HTTP 请求
const options = {
hostname: 'www.example.com',
port: 80,
path: '/',
method: 'GET'
};
const req = http.request(options, (res) => {
console.log(`状态码: ${res.statusCode}`);
console.log(`响应头: ${JSON.stringify(res.headers)}`);
res.setEncoding('utf8');
res.on('data', (chunk) => {
console.log(`响应主体: ${chunk}`);
});
res.on('end', () => {
console.log('响应中已无数据。');
});
});
// 设置超时时间为 2 秒
req.setTimeout(2000, () => {
console.log('请求超时。');
req.abort();
});
req.on('error', (err) => {
console.error(`请求遇到问题: ${err.message}`);
});
req.end();
在上述示例中,我们首先创建了一个 HTTP 请求,并使用 request.setTimeout() 方法设置了请求超时时间为 2 秒。如果请求超时,将执行设置的回调函数,并立即终止请求。
http.ClientRequest.setTimeout() 方法允许我们在 Node.js 中设置 HTTP 请求的超时时间,并在超出该时间时执行自定义的回调函数。这有助于我们更好地控制应用程序的行为,并避免不必要的等待。