📜  Node.js http.ClientRequest.setTimeout() 方法(1)

📅  最后修改于: 2023-12-03 15:17:54.689000             🧑  作者: Mango

Node.js http.ClientRequest.setTimeout() 方法

在 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 请求的超时时间,并在超出该时间时执行自定义的回调函数。这有助于我们更好地控制应用程序的行为,并避免不必要的等待。